私が間違っていることを理解できません。トークンの有効期限を設定できません。
_<?php
namespace App\Providers;
class AuthServiceProvider extends ServiceProvider
{
public function boot()
{
$this->registerPolicies();
Passport::tokensExpireIn(Carbon::now()->addDays(1));
Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}
}
_
しかし、$user->createToken()
を呼び出すと、たとえば次のようになります。
_<?php
// as a demo
namespace App\Http\Middleware;
class ParseSpecialToken
{
public function handle($request, Closure $next)
{
$user = User::find(1);
$accessToken = $user->createToken('Some token')->accessToken;
$request->headers->add(['Authorization' => 'Bearer '. $accessToken]);
return $next($request);
}
}
_
トークンの有効期限は1日ではなく1年です。どうして?経験時間を変更するには?
すべての付与タイプの有効期限を更新するために使用される方法は次のとおりです。
パーソナルアクセストークン:
public function boot(){
$this->registerPolicies();
Passport::routes();
Passport::personalAccessTokensExpireIn(Carbon::now()->addHours(24));
Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}
その他すべて
public function boot(){
$this->registerPolicies();
Passport::routes();
Passport::tokensExpireIn(Carbon::now()->addHours(24));
Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}
AuthServiceProviderの起動メソッドで上記のコードを更新するだけです。
Passportのドキュメントはこの質問に答えているようです
https://laravel.com/docs/5.6/passport#token-lifetimes
boot
のAuthServiceProvider
メソッドでPassport::tokenExpiresIn()
を呼び出します
public function boot()
{
$this->registerPolicies();
Passport::routes();
Passport::tokensExpireIn(now()->addDays(15));
Passport::refreshTokensExpireIn(now()->addDays(30));
}
はい、ある日、VERSION = '5.8'でこの問題を見つけるために無駄になりました。
今のところ、変更が必要な場合があります your-project/vendor/laravel/passport/src/Passport.php。
D --->は日Yを意味します--->年M --->は月を意味します
パスポートの3種類のトークン
1.303行の1.tokensExpireIn。
341行のpersonalAccessTokensExpireIn。
322行のrefreshTokensExpireIn。
ああ、パーソナルトークンは常に寿命が長く、これを設定できないことがわかりました:(
もしあなたがそうするなら
$token->expires_at =
Carbon::now()->addDays(env('PERSONAL_ACCESS_TOKEN_EXPIRY__DAYS'));
有効期限はどのリクエストでも確認されないため、個人トークンの有効なオプションではないと思います。
あなたはこれを行うことができます:
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
$token->expires_at =
Carbon::now()->addDays(env('PERSONAL_ACCESS_TOKEN_EXPIRY__DAYS'));
$token->save();