JWT 文件記錄

yema發表於2018-11-06

JWT安裝環境要求

//在composer.json 檔案中的 require 中:
require {
    "tymon/jwt-auth": "0.5.*"
}

composer update // 更新 composer 擴充套件包

安裝完成後

需要將 JWT 服務提供者新增到 app.php 配置檔案中的 providers 陣列中。
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class

接下來在 aliases 陣列中,如果需要使用 JWT 門面的話,新增 JWT 門面類。

'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class,

最後,在 laravel 專案中通過 artisan 命令釋出 JWT 配置檔案
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider

到此,安裝完成。

配置檔案詳解

Secret Key - secret

'secret' => env('JWT_SECRET', 'changeme')
簽名令牌時使用的金鑰,在配置檔案中還有 laravel 框架本身的金鑰 APP_KEY,作者在這裡將擴充套件和框架的配置區分開來,開發人員就可以獨立的更改他們。
使用命令 php artisan jwt:generate 來生成一個隨機的金鑰。

Token time to live - ttl

'ttl' => 60
令牌的有效時間。作者建議儘量簡短,特別是在使用令牌重新整理的情況下。

Refresh time to live - refresh_ttl

'refresh_ttl' => 20160
重新整理令牌的有效時間,預設為2周,意思是使用者使用舊的令牌來重新整理獲得新的令牌,2周之後,就不能繼續重新整理獲取的新的令牌。強制使用者重新登入。

Hashing algorithm - algo

'algo' => 'HS256'
雜湊演算法。用於將令牌進行簽名的雜湊演算法。我理解為加密方式。

User model path - user

'user' => 'App\User'
使用者模型路徑,應該是使用者模型的名稱空間。

User identifier - identifier

'identifier' => 'id'
使用者的身份唯一標識,預設為資料表中的 id

Required claims - required_claims

'required_claims' => ['iss', 'iat', 'exp', 'nbf', 'sub', 'jti']
必須存在於任何令牌中的宣告,文件是指出如果不包含還宣告,會丟擲 TokenInvalidException 異常。

Blacklist enabled - blacklist_enabled

'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED', true),
啟用黑名單。如果此項設定為 false,則無法使令牌失效。

Providers

服務提供者,這些包用來完成各種任務的實現。可以實現相關的介面取覆蓋這些服務提供者。

為什麼我可以這麼的菜?

相關文章