【问题标题】:Allow authenticated Devise user to access Doorkeeper protected controller actions允许经过身份验证的设计用户访问受门卫保护的控制器操作
【发布时间】:2016-11-24 05:24:43
【问题描述】:

我的 API 使用 OAuth2 和 Doorkeeper,而 UI 级别的身份验证使用 Devise。

我的应用由普通的超薄文件组成,但我需要添加一个自动完成搜索输入,通过 AJAX 将查询发送到 API 端点之一。

用户通过设计会话进行身份验证,并以 current_user 的身份使用,但由于 API 端点受 before_action :doorkeeper_authorize! 保护,我得到了 401。

无论如何“绕过”doorkeeper_authorize! 用户是否已通过 Devise 进行身份验证?

一种选择是将操作从 API 控制器中复制出来,并添加到我的“普通”以 UI 为中心的控制器中,该控制器刚刚受到 Devise 的保护,但这很丑。

【问题讨论】:

  • 您找到答案了吗?我现在正在遇到一模一样的问题。感觉应该有一个通用的解决方案,但我还没有找到。

标签: ruby-on-rails devise ruby-on-rails-5 doorkeeper


【解决方案1】:

这是我使用的一个对我有用的解决方案。

before_filter :doorkeeper_authorize!, :unless => :logged_in?

我没有使用设计,所以我不熟悉用于检查身份验证的方法,但我的 application_controller 上有一个 logged_in? 方法,如果用户在本地(通过 cookie)进行身份验证,它将返回 true。这会使任何 Oauth 检查短路。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多