Laravel passport个人访问令牌未过期
我正在尝试使用Laravel护照,我不知道我是否发现了一个bug或者我遗漏了什么 登录控制器: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
$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文件。创建的每个令牌都在上保存自己的过期时间。我将创建一个助手,用于检查用户令牌是否在