【问题标题】:JWT - TOKEN_EXPIRED after second refreshJWT - 第二次刷新后的 TOKEN_EXPIRED
【发布时间】:2019-06-17 01:45:33
【问题描述】:

我正在使用 laravel 和 tymon/jwt-auth 开发一个 API 服务器。在测试环境中 TTL - 1 分钟,TTL_REFRESH - 2 分钟。不明白以下算法是如何工作的:

  1. 用户登录并收到令牌
  2. 令牌的 TTL 已过期,但 TTL_REFRESH 未过期。用户向服务器发送请求以刷新令牌
  3. 用户使用了新的token,但没有及时更新。令牌又过期了。
  4. 当用户第二次尝试刷新令牌时(第一次是在第 2 步),服务器发送TOKEN_EXPIRED

如果在第 1 步和第 2 步之后尝试使用未过期的 TTL 刷新令牌,则会刷新令牌。但是如果我们在过期后刷新一次,第二次(带有过期令牌)服务器将发送到客户端TOKEN_EXPIRED

我的问题是为什么在 TTL 过期的第二次令牌更新后,服务器不刷新令牌而是发送TOKEN_EXPIRED

【问题讨论】:

    标签: php laravel api jwt


    【解决方案1】:

    我认为刷新令牌在第一次使用后已经失效

    您必须使用新的刷新令牌来刷新您的 jwt 令牌并获取新的

    【讨论】:

    • 我只有一个令牌,没有 jwt-auth 提供的刷新令牌。当我刷新它时,我只是向服务器发送一个带有authorization: Bearer *token* 标头的请求。
    • 你必须有刷新令牌才能刷新 jwt 令牌,我建议你阅读这个基于 slim php 框架的文档:oauth2.thephpleague.com
    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    相关资源
    最近更新 更多