我的应用程序接口使用OAuth2和Doorkeeper,UI级别的身份验证使用Devise。
我的应用程序是由简单的ol文件组成的,但我需要添加一个自动完成搜索输入,它通过AJAX将查询发送到API端点之一。
用户通过devise会话进行身份验证,并且可以作为current_user
使用,但是由于API端点受before_action :doorkeeper_authorize!
保护,因此我得到了一个401。
有没有办法“绕过”doorkeeper_authorize!
,因为用户已经通过Devise进行了身份验证?
一种选择是将动作从API控制器复制出来,并添加到我的“普通”UI中心控制器中,该控制器只是使用Devise进行保护,但这太难看了。
发布于 2016-12-29 03:26:44
这是我使用的一个对我有效的解决方案。
before_filter :doorkeeper_authorize!, :unless => :logged_in?
我没有使用devise,所以我不熟悉用于检查身份验证的方法,但是我的application_controller上有一个logged_in?
方法,如果用户在本地(通过cookie)进行身份验证,该方法将返回true。这会使任何Oauth检查短路。
https://stackoverflow.com/questions/40778598
复制相似问题