Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel passport个人访问令牌未过期_Laravel_Token_Access Token_Laravel Passport_Bearer Token - Fatal编程技术网

Laravel passport个人访问令牌未过期

Laravel passport个人访问令牌未过期,laravel,token,access-token,laravel-passport,bearer-token,Laravel,Token,Access Token,Laravel Passport,Bearer Token,我正在尝试使用Laravel护照,我不知道我是否发现了一个bug或者我遗漏了什么 登录控制器: $user = $request->user(); $tokenResult = $user->createToken('Personal Access Token'); $token = $tokenResult->token; $token->expires_at = Carbon::now()->addWeeks(1); $t

我正在尝试使用Laravel护照,我不知道我是否发现了一个bug或者我遗漏了什么

登录控制器:

    $user = $request->user();
    $tokenResult = $user->createToken('Personal Access Token');
    $token = $tokenResult->token;
    $token->expires_at = Carbon::now()->addWeeks(1);
    $token->save();
因此,我在用户登录时创建令牌。在数据库中,我看到生成的令牌在字段处过期:一周后,所以它是正确的。 但如果我更改了旧日期的值,我仍然可以使用此令牌

拉威尔只是忽略了这个领域?为什么?

我做了研究,但我有点困惑。。。很多人说代币不会过期或在一年内过期。但后来我发现了一些关于这个片段的帖子:

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

        Passport::routes();
        Passport::tokensExpireIn(Carbon::now()->addHours(24));
        Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}
我了解tokensExpireIn设置expires_at字段,refreshTokensExpireIn用于在用户每次使用其令牌时刷新此字段


但是,如果Laravel无论如何都不检查此字段,那么这是没有用的。

您还可以设置个人代币的过期日期

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

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

问题是我想验证令牌是否过期。。。您发布的这一行只是将expires_at字段设置为1个月后。我将在1年前直接在数据库设置上更改expires_at字段。但我仍然可以使用这个代币。。。为什么?这是好的。在检查令牌过期时,将不使用表中的expires\u文件。创建的每个令牌都在上保存自己的过期时间。我将创建一个助手,用于检查用户令牌是否在