Jar*_*ler 4 laravel laravel-sanctum
在我的api
路由文件中,我按照文档(https://laravel.com/docs/8.x/sanctum#introduction)编写了以下代码:
Route::post('/tokens/create', function (Request $request) {
$token = $request->user()->createToken($request->token_name);
return ['token' => $token->plainTextToken];
});
Run Code Online (Sandbox Code Playgroud)
我想设置一个过期延迟,用于将令牌的创建日期与当前检查令牌过期的日期进行比较:令牌的创建日期为x
,当前日期为y
,并且延迟d
会导致令牌过期,如果y > x + d
。
所以我读了目录中的一些代码vendor/laravel/sanctum
,并且找到了该类Guard.php
。
该类Guard.php
包含一个名为 的对象属性$expiration
、一个设置该属性的构造函数(以及其他内容)以及__invoke
包含以下过期检查的方法:
if (! $accessToken ||
($this->expiration &&
$accessToken->created_at->lte(now()->subMinutes($this->expiration))) ||
! $this->hasValidProvider($accessToken->tokenable)) {
return;
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它正是我想要的。但是,我不知道如何为该属性设置自己的值$expiration
。
在同一个文件中,有一些对现有配置文件的暗示,如下所示:config('sanctum.guard', 'web')
. 此外,该类SanctumServiceProvider
实例化Guard
以下值并将其传递给其构造函数:config('sanctum.expiration')
。但我不知道如何/在哪里定义这个配置值。也许https://laravel.com/docs/8.x/configuration config(['sanctum.expiration' => '1277126']);
?请您确认一下吗?(但是这条线该放在哪里呢?)
我的问题是:在 Laravel 8 Sanctum 中,我如何为$expiration
用于 Sanctum 令牌检查的变量设置自己的值?我应该编辑配置文件吗?如果是,如何编辑?我应该在终端中输入配置命令吗?
您可以发布 Laravel 配置:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
Run Code Online (Sandbox Code Playgroud)
请参阅https://laravel.com/docs/8.x/sanctum#installation
此后,您可以更改 中的所有配置选项config/sanctum.php
。中的配置文件config
将覆盖vendor
默认配置。
归档时间: |
|
查看次数: |
15641 次 |
最近记录: |