【问题标题】:404 Not Found on sanctum/csrf-cookie path404 Not Found on sanctum/csrf-cookie 路径
【发布时间】:2021-11-24 00:11:03
【问题描述】:

所以我一直在构建一个基于 laravel 的项目。我正在建立一个以 sanctum 作为我的授权包的 SPA 基础。它完美地工作。然后我将项目部署到服务器,每次我尝试登录时,/sanctum/csrf-cookie 上都会出现 404 错误。 这怎么可能发生?是不是因为 SanctumServiceProvider 不工作。

【问题讨论】:

  • 但它在本地主机上完美运行,SESSION_DDRIVER=file。为什么这是一个问题小伙子?
  • 不,会话域已配置到我的主机
  • 它适用于我本地开发环境中的 .test 域
  • 完成了,我已经把它放到线程中了
  • 不,项目在根文件夹中...应用程序只是我水疗中心内的一条路线

标签: laravel


【解决方案1】:

问题是当你定义 sanctum 前缀时,路由变成了这样的东西:

您可以通过以下方式查看您的路线:php artisan route:list

如您所见,/sanctum/ 已被删除,当您检查路线 /sanctum/csrf-cookie 时,它不会被删除并引发 404 错误。所以你有两个选择:

  • 添加此前缀: 'prefix' => 'api/v1/sanctum'
  • 将 GET 调用更改为 api/csrf-cookie

【讨论】:

  • 必须在哪里添加这个“前缀”,哪个文件?
  • your_project/config/sanctum.php
  • 我使用 vuejs 中的 axios 遇到了同样的问题,当我使用 php artisan route:list 检查路由时,/sanctum/ 没有被删除,并且路由是 sanctum/csrf-cookie .... . Laravel\Sanctum › CsrfCookieController@show.我看不出找不到它的任何原因。
【解决方案2】:

我通过添加解决了这个问题:

AllowOverride All

到apache目录配置

【讨论】:

    【解决方案3】:

    添加config/cors.php

    '路径' => ['*']

    【讨论】:

    • 请详细说明您的解决方案
    • 他遇到了一个与找不到路由相关的问题,与 cors 无关。
    • 核心应该配置为 'paths' => ['api/*', 'sanctum/csrf-cookie'],
    猜你喜欢
    • 1970-01-01
    • 2019-01-31
    • 2020-09-02
    • 2019-01-27
    • 2021-09-26
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多