快速生成 JWT
我們現在可以透過登入,第三方登入,建立一個 token
了,需要使用者身份認證的介面,都需要我們攜帶 token
進行訪問。這時候就會有一個問題,token
是有過期時間的,我們每次要除錯介面時都需要重新建立一個 token
;嘗試不同身份使用者呼叫的時候,就需要重為不同的使用者建立 token
,能不能有個快捷的方式建立 token
供除錯使用呢?這一節我們來解決這個問題。
1. 增加 command
下面我們增加一個Artisan 命令。
$ php artisan make:command GenerateToken
修改檔案
app/Console/Commands/GenerateToken.php
<?php
namespace App\Console\Commands;
use App\Models\User;
use Illuminate\Console\Command;
class GenerateToken extends Command
{
protected $signature = 'larabbs:generate-token';
protected $description = '快速為使用者生成 token';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$userId = $this->ask('輸入使用者 id');
$user = User::find($userId);
if (!$user) {
return $this->error('使用者不存在');
}
// 一年以後過期
$ttl = 365*24*60;
$this->info(\Auth::guard('api')->setTTL($ttl)->fromUser($user));
}
}
輸入使用者id,查詢id對應的使用者,然後為該使用者生成一個有效期為 1 年的 token
。
嘗試執行該 Artisan 命令
$ php artisan larabbs:generate-token
2. PostMan 增加變數
還記得 PostMan 可以增加變數嗎,建立一個 jwt_user1
的變數,填入剛才建立的 token
。
無論哪種方式設定 Authorization
都可以方便的使用token了。輸入 {
PostMan 會為我們列出可用的變數。
本作品採用《CC 協議》,轉載必須註明作者和本文連結