0

我正在开发一个基于rails-apiauthlogic用于处理用户身份验证的应用程序。

当我发布到UserSessions时,用户已通过身份验证,并且正确的用户被更新并返回。正在设置 cookie,当user_credentials我查看请求标头时,我可以看到正在传递正确的 cookie。

我看到的问题是current_user_sessionandcurrent_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
4

1 回答 1

0

这些是我在修补 rails-api 和 auth-logic 时未经研究的发现(因此,没有有用的链接,可能我误解了根本原因)

通过使用 rails-api,你必须启用很多中间件,在我的例子中,特别ActionDispatch::CookiesActionDispatch::Session::CookieStore.

查看POST请求响应,并检查是否有 header Set-Cookie。如果没有,您将缺少自动生成该标头的中间件。

尝试rails-api在您的 Gemfile 中注释掉并查看输出中的差异

rake middleware

我希望这会有所帮助,如果我有时间深入研究这个问题,我希望记得更新这篇文章。

于 2014-08-22T12:05:20.980 回答