gpt4 book ai didi

angularjs - ng-token-auth, ionic ,devise_token_auth; token 在 xhr 请求中随机丢失

转载 作者:行者123 更新时间:2023-12-04 11:12:13 25 4
gpt4 key购买 nike

我继承了一个使用 ng-token-auth 的 Ionic 应用程序+ devise_token_auth处理身份验证和前端和后端之间的 session 。

发生的事情很奇怪。有时(特别是在连接速度较慢的情况下)请求(或响应)会丢失,之后我只能得到 401 http 错误。

我知道每次我发送请求时 token 都会过期,但是当 xhr请求被取消(我猜是服务器,还是浏览器,我不知道) token 已过期而没有被 devise_token_auth 生成的新 token 替换。 gem 。

我知道 Rails,但我不熟悉 Angular,也不熟悉 Ionic,我也不知道该去哪里找。

在阅读了很多似乎没有人遇到我的问题的 SO 答案(发生在本地和登台/生产中)之后,我检查了以下内容

  • storage设置为 localStorage .
  • config.batch_request_buffer_throttle = 20.seconds
  • 取消的请求之间没有模式,有时我会为用户名执行 get,有时是发帖或发表评论。
  • 不是 CORS 问题,因为它总是或永远不会发生。 (此外,我正在使用代理,如 ionic blog 中所述)
  • 可能与provisional headers有关 Chrome 错误。但是,我怎么能确定呢?

  • 令我感到困惑的是,它只会发生 有时 并非总是如此。 (并且后端没有错误)

    我找到的唯一解决方法 in the devise_token_auth documentation是变化 config.change_headers_on_each_requestfalse以这种方式避免 token 的再生。

    但我不喜欢这个解决方案,因为我认为它以不安全的方式隐藏了真正的问题,而不是解决 token 丢失问题。有什么建议吗?

    最佳答案

    请检查这个东西:

  • 版本 :您使用的是哪个版本的 gem(以及 ng-token-authjTokerAngular2-Token,如果适用)?
  • 请求和响应头 :这些可以在浏览器网络检查器的“网络”选项卡中找到。
  • Rails 堆栈跟踪 :这可以在您的 API 的 log/development.log 中找到。
  • 环保信息 : 您的应用程序与reference implementation 有何不同? ?
    这可能包括(但不限于)以下详细信息:
    路线 :你在使用一些疯狂的命名空间、范围或约束吗?
    gem : 你在使用 MongoDB、Grape、RailsApi、ActiveAdmin 等吗?
    自定义覆盖 :你在[自定义 Controller 覆盖]方面做了什么
    5 ?
    自定义前端 : 你在使用 ng-token-auth , jToker , Angular2-Token , 或者是其他东西?
  • 关于angularjs - ng-token-auth, ionic ,devise_token_auth; token 在 xhr 请求中随机丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34145751/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com