>我继承了一个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
- 取消的请求之间没有模式,有时我执行用户名的获取,有时是帖子或评论。
- 不是 CORS 问题,因为它总是会发生或永远不会发生。(此外,我正在使用离子博客中解释的代理(
- 也许它可能与临时标题铬错误有关。但是,我怎么能确定呢?
令我困惑的是,它只是偶尔发生,而不是总是发生。(后端没有错误(
我在devise_token_auth文档中找到的唯一解决方法是更改config.change_headers_on_each_request
以false
避免以这种方式重新生成令牌。
但我不喜欢这个解决方案,因为我认为它以一种不安全的方式隐藏了真正的问题,而不是解决代币损失。有什么建议吗?
请检查一下:
- 版本
:您使用的是此 gem 的哪个版本(以及 ng-token-auth、jToker 或 Angular2-Token,如果适用(?
请求和响应标头:可以在浏览器 Web 检查器的"网络"选项卡中找到这些标头。
Rails Stacktrace:这可以在API的日志/开发.log中找到。
环境信息:您的应用程序与参考实现有何不同?
这可能包括(但不限于(以下详细信息:
路由:您是否正在使用一些疯狂的命名空间、范围或约束?
Gems:你是否正在使用MongoDB,Grape,RailsApi,ActiveAdmin等?
自定义替代:您在 [自定义控制器覆盖] 方面做了什么5?
自定义前端:您是否正在使用ng-token-auth,jToker,Angular2-令牌,还是别的什么?