最近在用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); } }