Tymon JWT刷新令牌过期时间配置无效,如何设置指定有效期?
Tymon JWT刷新令牌过期时间修改不生效的解决方法
针对修改config/jwt.php中refresh_ttl配置后,数据库内刷新令牌过期时间仍为2周的问题,按以下步骤排查解决:
检查环境变量覆盖
你的配置代码是'refresh_ttl' => env('JWT_REFRESH_TTL', 60),意味着如果.env文件中存在JWT_REFRESH_TTL变量,会优先使用该变量的值。打开.env文件,确认是否设置了JWT_REFRESH_TTL=1209600(2周对应的分钟数),如果有,改成你需要的数值(比如60)。清除Laravel配置缓存
如果之前执行过php artisan config:cache,Laravel会缓存配置文件,修改后的config不会立即生效。运行以下命令更新缓存:php artisan config:clear # 或者重新生成缓存 php artisan config:cache旧令牌不会自动更新
配置修改仅对新生成的刷新令牌生效,数据库中已存在的旧令牌是在修改配置前生成的,其过期时间已经固化,不会随配置变化而改变。可以生成新的令牌测试,验证过期时间是否正确。排查自定义存储逻辑
如果你自定义了刷新令牌的存储或生成逻辑,检查代码中是否硬编码了过期时间(比如直接写死2周的数值),确保代码正确读取config('jwt.refresh_ttl')的值来计算过期时间。
内容的提问来源于stack exchange,提问作者Ha Tim
相关产品推荐
相关产品推荐

