配置
上一篇文章中我們已經安裝好phper666/jwt-auth元件,併發布了配置。
配置檔案config/autoload/jwt.php已經有詳細配置說明,如果要改預設設定,只需要在.env檔案中加入相應的配置項,比如要更改預設的secret,只需要在.env檔案加入JWT_SECRET = your secret
這裡我們全部使用預設配置。
自定義異常處理
新增TokenValidExceptionHandler.php 實現TokenValidException的異常處理,返回帶401錯誤的JSON。
在config/autoload/exceptions.php http下注冊該異常處理
自定義中介軟體
新增JwtAuthMiddleware.php中介軟體
該中介軟體實現功能:
對所有jwt驗證的錯誤都丟擲TokenValidException,並由我們自定義的異常處理類處理
通過jwt驗證後,把認證的user注入到request,在使用了該中介軟體的控制器中,只需要呼叫request->user就可以獲得當前登入使用者。
中介軟體的使用詳見官方文件:https://hyperf.wiki/#/zh/middleware/middle...
編寫認證程式碼
在IndexController.php 新增
token方法,獲取token
refreshToken 重新整理token
logout 退出,實際是把token加入黑名單實現退出
配置好路由routes.php,就可以用postman測試了。
訪問token post正確的username和password就可以得到token和過期時間
訪問需要認證的路由時header新增Bearer Token