我正在 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 授权。
由于 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-->