laravel - Laravel 护照个人访问令牌不会过期
问题描述
我正在尝试使用 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 只是忽略了这个领域?为什么?
我做了我的研究,但我有点困惑......很多人说令牌不会在 1 年内过期或过期。但后来我发现了一些带有这个片段的帖子:
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));
您还需要重新生成您的代币,因为旧代币仍有其到期日期。
推荐阅读
- python - 将具有可变长度的多个列表作为参数传递给函数
- mysql - mysql 使用语法 1999 解决查询
- slurm - 是否可以通过 sbatch 将作业名称分配给 SLURM 数组中的单独工作人员?
- python - RuntimeError:cuDNN 版本不匹配:PyTorch 是针对 7102 编译但针对 7604 链接的
- docker - 在 kubernetes HELM 图表中删除 pod 后 Redis sentinel 没有通信
- html - Tslint:没有子元素的 JSX 元素必须自关闭 [错误]
- kubernetes - Spinnaker 管道名称环境变量
- sip - 同一 Windows7 上的两个 microSIP 实例
- centos7 - 登录时如何`scl enable devtoolset-8 bash`?
- tensorflow - 无法加载 SavedModel