我继承了一个 Ionic 应用程序,它使用ng-token-auth
+devise_token_auth
来处理身份验证和前后之间的会话。
发生的事情很奇怪。有时(特别是在连接速度较慢的情况下)请求(或响应)会丢失,之后我只会收到401
http 错误。
我知道每次我发送请求时令牌都会过期,但是当xhr
请求被取消时(我想是由服务器或浏览器,我不知道)令牌已过期而没有被新生成的替换由devise_token_auth
宝石。
我知道 Rails,但我不熟悉 Angular,Ionic 也不熟悉,我也不知道该去哪里找。
在阅读了很多 SO 答案后,似乎没有人遇到我的问题(在本地和暂存/生产中发生),我检查了以下内容
storage
设置为localStorage
。config.batch_request_buffer_throttle = 20.seconds
- 取消的请求之间没有模式,有时我为用户名执行获取,有时是帖子或评论。
- 不是 CORS 问题,因为它总是会发生或永远不会发生。(此外,我正在使用代理,如ionic blog中所述)
- 也许它可能与临时标题chrome 错误有关。但是,我怎么能确定呢?
令我困惑的是,它只是有时而不是总是发生。(并且后端没有错误)
我在 devise_token_auth 文档中找到的唯一解决方法是更改config.change_headers_on_each_request
为false
避免以这种方式重新生成令牌。
但我不喜欢这种解决方案,因为我认为它以不安全的方式隐藏了真正的问题,而不是解决令牌丢失问题。有什么建议吗?