带有身份验证的 Laravel api 路由

use*_*266 2 ajax xmlhttprequest laravel vue.js axios

我正在尝试创建一个只有在发出请求的用户登录时才能访问的 api 路由。这就是我的内容,routes/api.php但它返回 {"error":"Unauthenticated."}

Route::group(['middleware' => ['auth:api'], function () {
    Route::post('schedules', ['uses' => 'Api\ScheduleController@store']);
});
Run Code Online (Sandbox Code Playgroud)

这可以在没有 laravel 护照的情况下完成吗?我只需要登录用户在应用程序内使用的路线。

xmh*_*fiz 5

我假设提到的登录名是在使用“会话”作为驱动程序的“网络”上。

您遇到此问题是因为“web”和“api”guard 使用不同的驱动程序进行身份验证。进去看看config/auth.php。“api”守卫使用“令牌”作为默认驱动程序。

因此,您几乎没有办法遇到这种情况。

  1. 在 web.php 中移动“schedules”的路由。不用担心,如果未通过身份验证,您的 ajax 将会失败。但是,请注意,任何涉及 POST 方法的内容都需要csrf_token参数),除非您使用的是 laravel axios
  2. 也可以使用 api 进行身份验证,您可以参考本教程获取“令牌”驱动程序,并且所有安全路由都将在其身份验证标头中使用令牌