JWT / Laravel扩展令牌到期生存期

时间:2016-09-29 08:06:25

标签: laravel jwt

我使用JWT来管理用户对我们API系统的访问。我面临的问题是令牌在几分钟后到期。如何使JWT令牌过期,使其仅在用户手动注销时到期。

感谢。

3 个答案:

答案 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日期重置为当前时间。