JWT安裝環境要求
- laravel 4/5
- php 5.4 +
本文摘自 JWT-auth wiki https://github.com/tymondesigns/jwt-auth/wiki
參考 http://www.zhimengzhe.com/php/397000.html通過 composer 安裝 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
服務提供者,這些包用來完成各種任務的實現。可以實現相關的介面取覆蓋這些服務提供者。