官網文檔:https://jwt-auth.readthedocs.io/en/docs/
教程 : https://blog.csdn.net/ben_cxy/article/details/106658851
備注:
- 對於 Laravel 版本 低於 5.5 的應用,您還要在 config/app.php 文件中設置服務提供者和別名。如果您的 Laravel 版本為 5.5 或以上,Laravel 會進行「包自動發現」,不需要手動添加設置。
- 對於 5.5 或以上版本 的 Laravel,請使用下面這條命令來發布配置文件: php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
- 如果使用jwt-auth作為用戶認證,默認的模型文件為 config/auth.php 中設置的 model。(默認的user模型文件為app/user.php, 網上教程習慣為 app/model/user.php)
則需要修改User模型。'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Model\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ],
- 測試請求時 api/auth/login?email=123@qq.com&password=123,在數據庫內儲存的 password 字段需要進行加密儲存,加密方式 \password_hash(123, PASSWORD_DEFAULT)
多表登陸問題:
- 參考: https://learnku.com/articles/28881 https://learnku.com/articles/30342#reply102021
- 配置文件設置為
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], // 默認 'api' => [ // 'driver' => 'token', // 'provider' => 'users', 'hash' => false, 'driver' => 'jwt', 'provider' => 'users', ], // 新增admins 模塊 'admin' => [ 'driver' => 'jwt', 'provider' => 'admins', ] ], 'providers' => [ // user 模塊對應數據表 'users' => [ 'driver' => 'eloquent', 'model' => App\Model\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], // admin 模塊對應數據表 'admins' => [ 'driver' => 'eloquent', 'model' => App\Model\Admin::class, ] ],
- 對應模型設置增加對應識別字段
// admin public function getJWTCustomClaims() { // 區分管理與用戶的jwt,防止越權 return ['role' => 'admin']; } // user public function getJWTCustomClaims() { // 區分管理與用戶的jwt,防止越權 return ['role' => 'user']; }
- 調用時 admin/user調用
// api 對應 user 模型 , admin 對應 admin模型 // auth(config/auth.php中providers對應的鍵名) auth('api') auth('admin')
參考:
- https://blog.csdn.net/ttaohua/article/details/100175144
- https://blog.csdn.net/ben_cxy/article/details/106658851
- https://blog.csdn.net/amazingdyd/article/details/84849915
- https://learnku.com/laravel/t/27760
- https://blog.csdn.net/amazing_jin/article/details/81170964
- https://learnku.com/laravel/t/46984
- https://jwt-auth.readthedocs.io/en/docs/resources/
- https://github.com/tymondesigns/jwt-auth/issues/1094
- https://stackoverflow.com/questions/53404230/laravel-jwt-returns-error-unauthorized-on-login
- https://learnku.com/articles/30342 實現多表 jwt登陸
