Laravel护照个人访问令牌没有过期

时间:2019-10-11 08:55:16

标签: laravel token access-token laravel-passport bearer-token

我正在尝试使用Laravel护照,但我不知道我是否发现了错误或丢失了某些东西。

登录控制器:

    $user = $request->user();
    $tokenResult = $user->createToken('Personal Access Token');
    $token = $tokenResult->token;
    $token->expires_at = Carbon::now()->addWeeks(1);
    $token->save();

因此,我在用户登录时创建令牌。在数据库上,我看到生成的令牌具有expires_at字段:一星期后,它是正确的。 但是,如果我将此值更改为较早的日期,我仍然可以使用此令牌...

Laravel只是忽略了该字段?为什么?

我做了研究,但我有点困惑……很多人说代币不会过期或在一年内过期。但是后来我发现了一些带有此摘要的帖子:

public function boot(){
        $this->registerPolicies();

        Passport::routes();
        Passport::tokensExpireIn(Carbon::now()->addHours(24));
        Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}

我了解tokensExpireIn设置了expires_at字段,而每当用户使用其令牌时,refreshTokensExpireIn用于刷新此字段...

但是,如果Laravel仍然不检查此字段,那就没有用了。

1 个答案:

答案 0 :(得分:0)

您还可以设置个人令牌的到期日期

 Passport::personalAccessTokensExpireIn(now()->addMonths(1));

您还需要重新生成令牌,因为旧令牌仍具有其到期日期。