我的API将OAuth2与Doorkeeper一起使用,而UI级别的身份验证则使用Devise。
我的应用程序由简单的ol'苗条文件,但我需要添加一个自动完成搜索输入,通过AJAX将查询发送到其中一个API端点。
用户通过设计会话进行身份验证,并以current_user
的形式提供,但由于API端点受before_action :doorkeeper_authorize!
保护,因此我获得了401。
无论如何,绕过"绕过" doorkeeper_authorize!
用户是否已通过Devise进行身份验证?
一种选择是将操作复制出API控制器并添加到我的" normal"以UI为中心的控制器,只是用Devise保护,但这只是丑陋。
答案 0 :(得分:0)
这是我用过的解决方案。
before_filter :doorkeeper_authorize!, :unless => :logged_in?
我没有使用设计,所以我不熟悉用于检查身份验证的方法,但是我的application_controller上有一个logged_in?
方法,如果用户在本地进行身份验证(通过cookie),它将返回true 。这会使任何Oauth检查都短路。