我继承了一个Ionic应用程序,它使用ng-token-auth
+ devise_token_auth
来处理身份验证以及正面和背面之间的会话。
发生的事情很奇怪。有时(特别是连接速度慢)请求(或响应)丢失,之后我只得到401
http错误。
我知道每次发送请求时令牌都会过期,但是当xhr
请求被取消时(我想由服务器取消,或者浏览器,我不知道)令牌过期而没有被devise_token_auth
gem生成的新的替换。
我知道Rails,但我不熟悉Angular,既不是Ionic,也不知道到底在哪里。
在阅读了大量的SO答案之后,似乎没有人遇到我的问题(在本地和分期/制作中发生),我检查了以下内容
storage
设置为localStorage
。config.batch_request_buffer_throttle = 20.seconds
令我感到困惑的是,它只发生在有时而且并非总是如此。 (并且后端没有错误)
我发现in the devise_token_auth documentation的唯一解决方法是将config.change_headers_on_each_request
更改为false
,从而避免以此方式重新生成令牌。
但我不喜欢这个解决方案,因为我认为它以不安全的方式隐藏真正的问题,而不是解决令牌丢失。有什么建议吗?
答案 0 :(得分:0)
请检查一下:
版本:您使用的是该 gem 的哪个版本(以及 ng-token-auth、jToker 或 Angular2-Token,如果适用)?
请求和响应标头:这些可以在浏览器网络检查器的“网络”标签中找到。
Rails Stacktrace:可以在 API 的 log/development.log 中找到。
环境信息:您的应用程序与 reference implementation 有何不同?
这可能包括(但不限于)以下详细信息:
路由:您是否使用了一些疯狂的命名空间、范围或约束?
Gems:您在使用 MongoDB、Grape、RailsApi、ActiveAdmin 等吗?
自定义覆盖:您在[自定义控制器覆盖]方面做了什么 5?
自定义前端:您使用的是 ng-token-auth、jToker、Angular2- Token 还是其他?