我使用JWT来管理用户对我们API系统的访问。我面临的问题是令牌在几分钟后到期。如何使JWT令牌过期,使其仅在用户手动注销时到期。
感谢。
答案 0 :(得分:0)
在laravel 5.3中,我只是注释config / jwt.php中的行,即..,
的 // ttl => 60
强>
现在,生存时间不存在,令牌到期是终生的。
并且对于令牌无效,请在logout()中使用以下代码,即 JWTAuth::invalidate(JWTAuth::getToken());
答案 1 :(得分:0)
添加' exp'在一个数组中作为尝试'的第二个参数。方法。这个' exp'是时间戳。
例如:
$token=JWTAuth::attempt(
['email'=>$email,'password'=>$password],
['exp' => Carbon::now()->addweek()->timestamp]
);
答案 2 :(得分:0)
您需要存储令牌服务器端的到期时间,而不是令牌内部。这意味着您不在令牌中设置exp键。例如,您可以在数据库中存储具有到期时间的jti。当接收到令牌以进行身份验证时,您可以验证令牌,然后根据存储在数据库中的jti以及预期的生命周期和当前时间检查令牌的上次查看日期。如果令牌仍然有效,则将最后看到的jti日期重置为当前时间。