【问题标题】:Laravel api routes with auth带有身份验证的 Laravel api 路由
【发布时间】:2017-12-05 07:51:27
【问题描述】:

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

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

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

【问题讨论】:

    标签: ajax laravel xmlhttprequest vue.js axios


    【解决方案1】:

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

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

    因此,遇到这种情况的选择很少。

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

    【讨论】:

    • 我最终使用了JWT,但我想这回答了问题(需要实现令牌驱动程序)。奇怪的是,Laravel 如何在 config/auth.php guards->api 中将 token 作为默认驱动程序,但文档中甚至没有关于如何使用它的 1 个字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2016-02-05
    • 1970-01-01
    • 2014-06-24
    • 2015-04-28
    • 1970-01-01
    相关资源
    最近更新 更多