我正在尝试创建一个 api 路由,只有发出请求的用户登录后才能访问。这就是我的routes/api.php
但它返回{"error":"Unauthenticated."}
Route::group(['middleware' => ['auth:api'], function () {
Route::post('schedules', ['uses' => 'Api\ScheduleController@store']);
});
没有 Laravel Passport 可以做到这一点吗?如何做到?我只需要登录用户在应用程序内使用的路线。
我假设提到的登录是在“网络”上,它使用“会话”作为驱动程序。
您遇到此问题是因为“web”和“api”防护使用不同的驱动程序进行身份验证。看看config/auth.php
。 “api”守卫使用“token”作为它的默认驱动程序。
因此,遇到这种情况您几乎没有什么选择。
- 在 web.php 中移动“schedules”的路径。不用担心,如果未经身份验证,您的 ajax 将失败。但是,请注意,任何涉及 POST 方法的内容都需要csrf (
_token
参数),除非你使用 laravel axios
- 使用 api 进行身份验证也可以参考本教程对于“令牌”驱动程序,您的所有安全路由都将在其中使用令牌验证 header
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)