JWT 快速為使用者生成 token

gyp719發表於2019-04-09

快速生成 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

file

2. PostMan 增加變數

還記得 PostMan 可以增加變數嗎,建立一個 jwt_user1 的變數,填入剛才建立的 token
file

無論哪種方式設定 Authorization 都可以方便的使用token了。輸入 { PostMan 會為我們列出可用的變數。
file

file

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章