Laravel 5.4 + Dingo/API + JwtAuth 用户表

为了把cms和api合并到一个项目里,需要两个用户表,于是趟了各种坑。终于解决了jwt认证换默认用户表的问题。

1、新建中间件

 php artisan make:middleware JwtAuthModel

在/app/Http/Middleware/JwtAuthModel.php中填充内容:

 '\App\Models\Api\User']); //用于重定位model
        config(['auth.providers.users.model' => \App\Models\Api\User::class]); //用于重定位model

        return $next($request);
    }
}

2、配置中间件

在/app/Http/Kernel.php中的

 protected $routeMiddleware = [

下增加:

'jwt.api.auth' => \App\Http\Middleware\JwtAuthModel::class, //新增注册的中间件

3、配置路由的中间件

在/routes/api.php

$api = app('Dingo\Api\Routing\Router');
$api->version('v1', function ($api) {
    $api->group(['namespace' => 'App\Api\Controllers', 'middleware' => ['jwt.api.auth']], function ($api) {
        /**
         * Register & Login
         */
        $api->post('login', 'AuthController@authenticate');

        /**
         * Token Auth
         */
        $api->group(['middleware' => 'jwt.auth'], function ($api) {
            // Init
            $api->group(['prefix' => 'init'], function ($api) {
                $api->get('/', 'InitController@index');
            });
        });
    });
});

重点是第三行的(其他是示例代码):

   'middleware' => ['jwt.api.auth']

4、End

搞定了,现在api访问的用户表就是中间件中config的。

你可能感兴趣的:(Laravel 5.4 + Dingo/API + JwtAuth 用户表)