我很难找到一个关于如何使用authlogic启用单一访问令牌身份验证的简单教程.有一些文档,但它不是很有帮助.
我将single_access_token添加到我的数据库中,我添加了这个:
single_access_allowed_request_types :any
到我的Session类.但我仍然不明白如何使用每次调用传递的凭据参数对用户进行身份验证.我在过滤器之前的require_authentication对current_user进行了标准检查,如下所示:
def current_session return @current_session if @current_session @current_session = Session.find end def current_user @current_user = current_session && current_session.record end
但这足以奏效吗? Session.find方法是否能够根据我的参数来记录用户,或者我是否必须创建单独的方法来实际检查user_credentials参数是否存在然后根据它找到用户然后将该用户记录下来.如果我每次使用SAT时都“创建”一个新会话,或者每次进行API调用时我只是在一个before过滤器中设置当前用户,我感到很困惑.
任何帮助都会很棒!谢谢!
解决方法
我使用authlogic实现了一个single_access_token解决方案,我必须做的是将single_access_allowed_request_types:all添加到UserSession模型.
然后我将以下内容添加到控制器中,我想允许single_access_token身份验证.
def single_access_allowed? ["some_action_1","some_action_2","some_action_3"].include?(action_name) end
看起来你错过了控制器代码.因此,如果你有两个动作“get_user_info”和“update_user_info”,你会添加.
def single_access_allowed? ["get_user_info","update_user_info"].include?(action_name) end