【发布时间】:2016-05-08 09:07:45
【问题描述】:
我花了太长时间试图弄清楚这一点,而谷歌却帮不上什么忙。我在客户端上使用带有 ng-token-auth 的 devise-token-auth gem 来进行令牌身份验证,登录后它不断给我一个陈旧的令牌。具体来说,是用于用户的最后一个令牌,即使返回一个新令牌并将其存储在 cookie 中。更令人困惑的是,如果我刷新页面,我会突然得到正确的令牌,并且身份验证按预期工作。上周一切正常,所以我对我所做的更改可能导致这种情况发生有点不知所措。有没有人以前或现在看到过这个是什么原因造成的。它快把我逼疯了。
初始化程序/devise_token_auth.rb
DeviseTokenAuth.setup do |config|
config.change_headers_on_each_request = false
config.default_confirm_success_url = "confirmed"
remove_tokens_after_password_reset = true
config.token_lifespan = 24.hours
end
routes.rb
mount_devise_token_auth_for 'User', at: 'api/auth'
我真的不知道发生了什么,也不知道为什么它会这样折磨我。任何帮助是极大的赞赏。如果有任何我没有包含的代码有助于回答这个问题,请告诉我。
【问题讨论】:
-
服务器日志是否显示一个新的令牌被发送回 Angular?是否有角度没有正确存储新令牌?日志会帮助我们。
-
服务器日志除了发送回令牌之外并没有真正提供太多指示。 validateuser 响应显示从服务器发送的令牌无效,然后在刷新标头后包含正确的令牌。
-
您在初始化程序中缺少配置:
config.remove_tokens_after_password_reset = true -
谢谢@Anand,我一定会把它添加进去。我没有意识到有一个配置。
标签: ruby-on-rails ruby angularjs devise