【问题标题】:laravel jetstream request api route middleware protected api:sanctum return unauthenticated responselaravel jetstream request api route middleware protected api:sanctum return unauthenticated response
【发布时间】:2021-01-03 15:14:56
【问题描述】:

我在 session.php 文件中遇到了 'domain' => env ('SESSION_DOMAIN', null) 的问题。例如在.env文件中设置SESSION_DOMAIN值时

SESSION_DOMAIN=mysite.test

登录不起作用,似乎有一个 middlaware。 如果不设置此参数,登录工作正常,因此当我使用 sanctum 中间件调用 api 保护路由时。

Route::middleware(['auth:sanctum'])->group(function () {
    Route::get('/myroute', function () {
        return 'hello world!';
    });
});

我收到未经身份验证的回复。 如果使用 web.php 文件路由并插入相同的函数:

Route::middleware(['auth:sanctum'])->group(function () {
     Route::get('/api/myroute', function () {
         return 'hello world!';
    });
});

带有 api 前缀,它的工作正常。 我关注了 laravel 8.x sanctum 文档https://laravel.com/docs/8.x/sanctum。在没有喷气流的 laravel 项目 7.* 中,我没有问题。 对于这种现象有任何建议或解释。 任何解释都会对我有所帮助!非常感谢。

【问题讨论】:

    标签: laravel-sanctum laravel-8 inertiajs jetstream


    【解决方案1】:

    我遇到了一个类似的问题,我无法验证来自前端的任何 API 请求。原来生成的 Kernel.php 默认不包含会话 cookie 的 Sanctum 中间件 - you have to add it manually 在您的 app/Http/Kernel.php 中:

     'api' => [
            EnsureFrontendRequestsAreStateful::class, // <- Add and import this middleware
            'throttle:api',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
     ],
    

    执行此操作后,我的前端的 API 请求再次正常工作。也许这也能解决您的问题。

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 2016-10-01
      • 2016-10-07
      • 2021-04-16
      • 2018-10-06
      • 2022-06-15
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多