如何在Laravel中同时使用web和api守卫?

How to use web and api guards at the same time in Laravel?

我构建了包含两个部分的应用程序:RESTful 部分用于手机和网络。

如何同时使用web/api个守卫?我可以使用 stadart 网络表单注册用户,并接受像 Restful?

这样的请求

使用auth:api 中间件

保护您的api 的任何路由
Route::group(['middleware' => ['auth:api']], function(){
    //protected routes for API
});

我们必须确保您的 users table 有一个 api_token 列:

php artisan make:migration alter_users_table_add_api_token_column

然后在 up 函数内部:

Schema::table('users', function($table){
    $table->string('api_token', 60)->unique(); //this must be 60 characters
});

最后在您的 App\Http\Controllers\Auth\RegisterController 中,修改创建文件以添加您的 api_token

protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        'api_token' => str_random(60) //add this
    ]);
}

现在对 auth:api 受保护路由的请求将需要在其负载中包含 api_token