Laravel5.8:Passprot パーソナルアクセストークンのトークン持続時間が指定可能になっていた

はじめに

LaravleでAPI認証を行うときにPassportを使用すると簡単に実装できます。
その中でアクセストークンは、ユーザー自身がトークンを発行してAPIを利用する仕組みです。

トークンの発行もフロントエイド・クイックスタートが用意されているので簡単に実装できます。

トークン接続時間が変更できない

ただ、トークンの持続時間には制限がありLaravel5.7までは1年間となっていました。
こちらに関してはドキュメントにもパーソナルアクセストークンの箇所で説明されています。

Note: パーソナルアクセストークンは常に長期間有効です。tokensExpireInやrefreshTokensExpireInメソッドを使用しても、有効期間を変更できません。

ここで、長期間有効とありますがこちらは、トークン持続時間のところでデフォルト一年間と記載されています。

Laravel5.7までは、有効期間を変更したくても出来ず1年間のうちにトークンの再発行が必要でした。

Laravel5.8から指定が可能に

Laravel5.8になってからは、personalAccessTokensExpireInメソッドを使用することで有効期限を自由に設定出来るようになりました。

AuthServiceProviderbootメソッドでpersonalAccessTokensExpireInメソッドを呼び出すだけです

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

    Passport::routes();
    // 10年間トークンを持続させる
    Passport::personalAccessTokensExpireIn(now()->addYears(10));
}

これで期間を気にすることなくAPIを利用することが可能になります。

ちなみに oauth_access_tokens テーブルにexpirse_atというカラムに期限がありますが変更しても期限には影響がありません。
トークンのハッシュ内に期限が含まれていると思われます。

コメント

タイトルとURLをコピーしました