首页 文章

使用Laravel JWT重新认证的黑名单旧标记

提问于
浏览
2

我正在使用Laravel 5.2和tymondesigns/jwt-auth .

如果用户在没有注销的情况下再次登录,是否可以将旧令牌列入黑名单?我很好奇旧令牌的安全性 .

有关如何改进移动设备上“始终登录”的任何建议,因为我目前使用Laravel作为API .

我目前的配置是:ttl = 1小时&refresh_ttl = 2周

3 回答

  • 0

    您可以使用 jwt.refresh 中间件,该中间件将新令牌作为响应中的标头发回 . 如果您启用了黑名单,则旧令牌将立即列入黑名单 . 只需在您的登录路由中包含 jwt.refresh ,然后确保捕获响应标头并更新您的本地密钥 . 然后你可以使 ttlrefresh_ttl 无限制(即 60*60*24*365*10

  • 1

    实际上@Jeff的回答可能会解决问题 . 我需要使用 jwt.refresh 中间件 .

    我的JWT黑名单无法正常工作,因为我正在使用 array 作为 CACHE_DRIVER

    我已经测试了将其恢复为 file ,因为 CACHE_DRIVERjwt.refresh 是有效的,旧令牌被列入黑名单,因为它应该是 .

    我将此标记为答案 . 谢谢杰夫 .

  • 3

    您可以在用户首次登录时创建一个表来存储令牌 .

    当该用户再次登录时,您将获得旧令牌(从您的表中),然后将旧令牌列入黑名单,使用在登录后立即生成的新表更新该表 .

相关问题