php oauth2 和 jwt,jwt-auth: thinkphp 的 jwt (JSON Web Token)身份验证扩展包,支持Swoole...
JWT-AUTH
thinkphp的jwt(JSON Web Token)身份驗證包。支持Header、Cookie、Param等多種傳參方式。包含:驗證、驗證并且自動刷新等多種中間件。
支持Swoole
環境要求
php >= 7.0
thinkphp ^5.1.10 || ^6.0.0
說明
目前支持如下三大類型加密方式:RSA,HASH,DSA。再各分256、384、512位。
默認是HS256,即hash 256位加密。
需要修改加密方式,請修改參數:ALGO,參數選項:
HS256
備注:hash 256位
HS384
備注:hash 384位
HS512
備注:hash 512位
RS256
備注:rsa 256位
RS384
備注:rsa 384位
RS512
備注:rsa 512位
ES256
備注:dsa 256位
ES384
備注:dsa 384位
ES512
備注:dsa 512位
重要:RSA和DSA 都是非對稱加密方式,除了修改參數ALGO外,需要配置:PUBLIC_KEY、PRIVATE_KEY兩個參數,
這兩個參數支持文本(不要開頭、結尾和換行)或密鑰文件路徑。如果密鑰設置了密碼,請配置好參數:PASSWORD
env文件不支持內容有等于號,遇到這種情況:
1、使用路徑 2、生成沒有等于號的密鑰。
安裝
第一步:
$composer require thans/tp-jwt-auth
第二步:
$php think jwt:create
此舉將生成jwt.php和.env配置文件。不推薦直接修改jwt.php
同時,env中會隨機生成secret。請不要隨意更新secret,也請保障secret安全。
使用方式
對于需要驗證的路由或者模塊添加中間件:
thans\jwt\middleware\JWTAuth::class,
示例:
use thans\jwt\facade\JWTAuth;
$token = JWTAuth::builder(['uid' => 1]);//參數為用戶認證的信息,請自行添加
JWTAuth::auth();//token驗證
JWTAuth::refresh();//刷新token,會將舊token加入黑名單
token刷新說明:
token默認有效期為60秒,如果需要修改請修改env文件。
refresh_ttl為刷新token有效期參數,單位為分鐘。默認有效期14天。
token過期后,舊token將會被加入黑名單。
如果需要自動刷新,請使用中間件 thans\jwt\middleware\JWTAuthAndRefresh::class,
自動刷新后會通過header返回,請保存好。(注意,此中間件過期后第一次訪問正常,第二次進入黑名單。)
token傳參方式如下:
將token加入到url中作為參數。鍵名為token
將token加入到cookie。鍵名為token
將token加入header,如下:Authorization:bearer token值
以上三種方式,任選其一即可。推薦加入header中。
其他操作
拉黑Token JWTAuth::invalidate($token);
查詢Token是否黑名單 JWTAuth::validate($token);
常見問題
使用RSA256方式的時候,請使用文本形式。如下:
聯系&打賞
參考與借鑒
感謝
jwt-auth
php
lcobucci/jwt
thinkphp
下一步
支持動態配置
License
MIT
總結
以上是生活随笔為你收集整理的php oauth2 和 jwt,jwt-auth: thinkphp 的 jwt (JSON Web Token)身份验证扩展包,支持Swoole...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为荣耀v20是android10,荣耀
- 下一篇: html修改details范围,HTML