8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Laravel Sanctum 用于不同域上的 API 身份验证

Arian Segui Garcia 2月前

136 0

我正在 Laravel 中验证 API 请求,它在本地运行良好,但是当我同时部署两者(Firebase 上的 React,不同域上的 Laravel)时,API 身份验证停止工作。这...

我正在 Laravel 中验证 API 请求,并且它在本地运行良好,但是当我同时部署两者(Firebase 上的 React,不同域上的 Laravel)时,API 身份验证停止工作。

这是 app/Http/Kernel.php

protected $middlewareGroups = [
    'api' => [
        \Fruitcake\Cors\HandleCors::class,
        // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
        'throttle:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

这是 config/cors.php

    'paths' => ['api/*', 'sanctum/csrf-cookie'],

    'allowed_methods' => ['*'],

    'allowed_origins' => ['http://localhost:3000', 'https://example.web.app'],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => true,

当我使用 axios 从 React 发出请求时出现 401 错误。

我向 ChatGPT 询问并搜索了很多,但没有用。

我想要向 Laravel 发出请求并使用不同域的 sanctum 对其进行身份验证。

///////////////// 更新 ///////////////////

我切换到 JWT 身份验证,因为 @jurandou 提到它 laravel/sanctum 不支持来自不同域的 API 授权。

帖子版权声明 1、本帖标题:Laravel Sanctum 用于不同域上的 API 身份验证
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Arian Segui Garcia在本站《api》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 由于 Web API web.config 文件,我的网站 html 文件无法打开。我正尝试在 Plesk 上托管我的网站。我将前端 (HTML CSS JS) 文件放在 httpdocs 文件夹中,没有问题

    由于 Web API web.config 文件,我的网站 html 文件无法打开。

    我正在尝试在 Plesk 上托管我的网站。我将前端(HTML CSS JS)文件放在 httpdocs 文件夹中,打开它们没有任何问题(我可以使用 URL 打开它们:) fadaeitrading.com/Home.html 。但是后来我在 Visual Studio 中发布了我的 Web API,并将其放在同一个 httpdocs 文件夹中。现在我可以使用 URL 示例访问 Web API: fadaeitrading.com/api/Product/GetProducts (Product 是控制器名称, GetProducts 是端点)但我无法访问我获得的 html 文件 ERROR 404 。我几乎可以肯定这是因为 Web API 的 web.config 文件,但我不知道如何修复它(也许有人可以做到,当 URL 有 Web API 时, api/ Web API 可以工作)。我将在此处提供 web.config 文件的内容。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <location path="." inheritInChildApplications="false">
        <system.webServer>
          <handlers>
            <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
          </handlers>
          <aspNetCore processPath="dotnet" arguments=".\LAV.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
        </system.webServer>
      </location>
    </configuration>
    <!--ProjectGuid: 4447276A-7814-4EFD-B2D8-457F7A8B94B4-->
    
    
返回
作者最近主题: