我正在开发一个构建在rails-api上的应用程序,它使用authlogic来处理用户身份验证。
当我在UserSessions上发帖时,会对用户进行身份验证,并更新并返回正确的用户。正在设置user_credentials cookie,当我查看请求标头时,我可以看到传递的是正确的cookie。
我看到的问题是没有设置current_user_session和current_user methods。
我使用了非常标准的current_user_session和current_user方法。
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end发布于 2014-08-22 20:05:21
这些是我在修补rails-api和auth-logic时没有研究过的发现(所以,没有有用的链接,可能我误解了根本原因)。
通过使用rails-api,您必须启用很多中间件,在我的例子中,特别是ActionDispatch::Cookies和ActionDispatch::Session::CookieStore。
查看POST请求响应,并检查是否有标头Set-Cookie。否则,您将缺少自动生成该标头的中间件。
尝试注释掉Gemfile中的rails-api,并查看
rake middleware我希望这对我有所帮助,如果我有时间深入探讨这个问题,我希望记得更新这篇文章。
https://stackoverflow.com/questions/19832101
复制相似问题