最近在用laravel+jwt進行auth認證,剛寫完用戶模塊
遇到個問題:立刻要寫後臺模塊,而2個模塊設計的是2張用戶表:user表和admin表,larvel卻是有多用戶的權限認證辦法,jwt的沒接觸過
第一時間就去谷歌搜了下關於laravel+jwt多用戶認證的文章,出來的前3個結果不(簡)是(直)很(有)好(毒),特地在這裏給你們介紹個簡單辦法,以避免和我同樣白白浪費2個小時-_-!!!php
谷歌到的辦法(出自laravel china)是:先去更新jwt到1.0 dev版,而後再配置laravel auth.php不一樣的guards,又還要從新發布...思之不對勁~laravel
從新看了下config文件夾下的jwt.php
,裏面有個配置項ide
'user' => 'App\Models\User', // 這裏在我以前已經安裝的時候已經配置過(原始是'user' => 'App\User'),不過當時造輪子在,沒多想。。
感受有戲,修改了下model指向Admin,確定就訪問了Admin去了,那麼說明咱們只須要去在哪裏配置下便可google
沒錯,就是在中間件了,在訪問home和admin路由羣組的時候,各自添加一個中間件,用於指定jwt去訪問不一樣的model。下面是我寫的中間件:spa
<?php namespace App\Http\Middleware; use Closure; class AdminChangeMidleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { config(['jwt.user' => '\App\Models\Admin']); //用於指定特定model config(['auth.providers.users.model' => \App\Models\Admin::class]);//就是他們了 return $next($request); } }