Laravel API Token 使用方式
產生 token
官方的範例是在使用者註冊時同時產生 token,但如果沒有另外實作更新機制的話可能不是很安全,這邊選擇的實作方式是在使用者登入時重新產生一組 token,這樣使用者不用自己管理 token,也不會永遠使用同一組 token。
使用 make:listener
建立一個 listener:
php artisan make:listener SuccessfulLogin
修改 app/Listeners/SuccessfulLogin.php
,加入以下內容,讓事件觸發時更新 API token。
public function handle()
{
$user = Auth::user();
$user->api_token = Str::random(80);
$user->save();
}
最後修改 app/Providers/EventServiceProvider.php
,將我們剛剛新增的 listener 綁定到使用者登入的事件:
protected $listen = [
// ...
'Illuminate\Auth\Events\Login' => [
'App\Listeners\SuccessfulLogin',
],
// ...
];
Illuminate\Auth\Events\Login
是 Laravel 內建的事件類型。
這時候進行登入,可以發現 api_token
在登入後會自動更新。
License:
CC BY 4.0