概要
LaravelでAPIを構築する場合の認証基盤として、Laravel Passportを使用するケースもあると思います。Laravel Passportの認証方法の一つであるPersonal Access Tokenでの認証について、取り上げます。
Laravel Passportの概要とPersonal Access Tokenに関して
@zaburoさんのLaravel Passportの使い方まとめの記事にざっくりとした概要と、Personal Access Tokenの実装サンプルが紹介されています。
Personal Access Tokenは認証後にユーザに対し、アクセストークンを発行しこのトークンを用いて、認証済みかの判定を行います。
Tokenの有効期限に関して
Laravel Passportのクライアント認証を試してみるの記事にある通り、AuthServiceProviderにtokenの有効期限を設定することが可能です。
ただ、上記記事の設定だけだとPersonal Access Tokenの有効期限はデフォルトのままです。
対応
こちらのStack Overflowの記事Laravel Passport token lifetimeによると、Personal Access Tokenに対しては、
Passport::personalAccessTokensExpireIn(Carbon::now()->addDays(1));
のように設定しないとダメとのこと。
また、Passportが7.0.4以上のバージョンから使用できます、おそらくLaravelは5.8以上からではないと使えないと思います。(Laravel 5.8 Laravel Passport
)
ちなみに、oauth_access_tokens
のexpires_at
を直接更新しても、実際に使用している期限はtokenで暗号化されているものらしく、更新しても無意味だそうです。。