我使用的是Laravel 5.2和tymondesigns/jwt-auth。
如果用户在没有注销的情况下再次登录,是否可以将旧令牌列入黑名单?我对旧令牌的安全感到好奇。
有关如何改善"始终登录"的任何建议在移动设备上,因为我目前使用Laravel作为API。
我目前的配置是:ttl = 1小时& refresh_ttl = 2周
答案 0 :(得分:3)
您可以使用jwt.refresh
中间件,它会将新令牌作为响应发送回标头。如果您启用了黑名单,则旧令牌将立即列入黑名单。只需在您的登录路由中包含jwt.refresh
,然后确保捕获响应标头并更新您的本地密钥。然后,您可以使ttl
和refresh_ttl
无限制(即。60*60*24*365*10
)
答案 1 :(得分:2)
实际上@Jeff的回答可能会解决问题。我需要使用jwt.refresh
中间件。
我的JWT黑名单无效,因为我使用array
作为CACHE_DRIVER
我已经过测试,将其还原为file
,因为CACHE_DRIVER
和jwt.refresh
有效,旧令牌会被列入黑名单。
我将此标记为答案。谢谢杰夫。
答案 2 :(得分:0)
您可以在首次登录时创建一个表来存储令牌。
当该用户再次登录时,您将获得旧令牌(从您的表中),然后将旧令牌列入黑名单,使用在登录后立即生成的新表更新该表。