Laravel+JWT 多表(or多用户)认证

最近在用laravel+jwt进行auth认证,刚写完用户模块
遇到个问题:立刻要写后台模块,而2个模块设计的是2张用户表:user表和admin表,larvel却是有多用户的权限认证办法,jwt的没接触过
第一时间就去谷歌搜了下关于laravel+jwt多用户认证的文章,出来的前3个结果不(简)是(直)很(有)好(毒),特地在这里给你们介绍个简单办法,以避免和我同样白白浪费2个小时-_-!!!php

分析:

  1. 谷歌到的办法(出自laravel china)是:先去更新jwt到1.0 dev版,而后再配置laravel auth.php不一样的guards,又还要从新发布...思之不对劲~laravel

  2. 从新看了下config文件夹下的jwt.php,里面有个配置项ide

    'user' => 'App\Models\User',
    // 这里在我以前已经安装的时候已经配置过(原始是'user' => 'App\User'),不过当时造轮子在,没多想。。
  3. 感受有戏,修改了下model指向Admin,确定就访问了Admin去了,那么说明咱们只须要去在哪里配置下便可google

  4. 没错,就是在中间件了,在访问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);
     }
}
相关文章
相关标签/搜索