401 未经授权且正确的 jwt 令牌问题

问题描述 投票:0回答:1

登录 API 后,我使用了其他 3 个 API,其中包含来自登录 API 的 jwt 令牌,但其中一个 API 返回了未经授权的错误,并且我的应用程序停止了登录过程。

我首先认为令牌设置不正确,但后来我复制了该 API 的curl 并在 Postman 中点击它,它成功返回了。 这并不每次都提供相同的 API,例如:

案例1 登录API:成功 一些 API:401

案例2 登录API:成功 一些 API:成功 其他一些 API:401

案例3 登录API:成功 一些 API:成功 其他一些 API:成功 其他一些 API 2:401

只有登录 API 后持续运行的 api 才会发生这种情况。

这种情况只发生五分之一,并且 401 可以从登录 API 后立即命中的 3 个 API 中的任何一个返回。

我没有在服务器端更改任何内容,并且它是最近开始发生的。 我该如何解决它?

mongodb authentication jwt nestjs token
1个回答
0
投票

解决此类间歇性问题可能具有挑战性,但您可以采取以下一些步骤来调查并可能解决问题:

  1. 令牌过期和刷新:

    • 当您将登录 API 调用后收到的 JWT 令牌用于后续 API 调用时,请验证您收到的 JWT 令牌是否未过期。
    • 检查返回 401 错误的 API 的令牌过期时间是否较短。
    • 如果需要,实施令牌刷新机制。
  2. 代币处理:

    • 确保您在后续 API 请求的标头中正确包含令牌。
    • 检查成功的 API 和返回 401 的 API 的令牌处理方式是否存在差异。
  3. API速率限制:

    • 某些 API 实施速率限制。如果您发出大量请求,则可能会达到速率限制并收到 401 错误。检查 API 文档以了解速率限制。
  4. 服务器端日志:

    • 检查服务器端日志中是否有返回 401 状态代码的 API。查找可能表明原因的任何错误消息或模式。
  5. 重试机制:

    • 对返回401状态码的API调用实现重试机制。这在问题是暂时的情况下可能会有所帮助。
  6. 检查服务器端更改:

    • 即使您端没有进行任何更改,也要检查服务器端是否有任何更新或更改。有时,服务器上的更改可能会影响 API 调用的行为。
  7. 网络问题:

    • 间歇性的网络问题也会导致此类问题。检查您的应用程序和 API 服务器之间是否存在任何与网络相关的问题。
  8. 错误处理:

    • 检查您的错误处理机制,以确保您的应用程序能够妥善处理错误,在适当的时候重试,并向用户提供有意义的反馈。
  9. 更新依赖项:

    • 确保您的依赖项(库、框架等)是最新的。有时,问题可能与过时的库有关。
  10. 联系API提供商:

    • 如果问题仍然存在,请考虑联系 API 提供商的支持。他们可能对任何持续存在的问题或变化有深入的了解。

通过系统地执行这些步骤,您可以确定间歇性 401 错误的根本原因并找到解决方案。如果问题仍然存在,请 API 提供商提供支持可能会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.