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

时间:2016-05-05 20:09:41

标签: api laravel laravel-5.2 jwt

我使用的是Laravel 5.2和tymondesigns/jwt-auth

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

有关如何改善"始终登录"的任何建议在移动设备上,因为我目前使用Laravel作为API。

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

我的JWT黑名单无效,因为我使用array作为CACHE_DRIVER

我已经过测试,将其还原为file,因为CACHE_DRIVERjwt.refresh有效,旧令牌会被列入黑名单。

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

答案 2 :(得分:0)

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

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