Laravel Sanctum & NuxtJS SPA 不会在浏览器中创建 csrf cookie



我有一个后台API在Laravel与Sanctum,和独立的存储库SPA在NuxtJS

我正在尝试用Sanctum验证我的SPA。我正试图在浏览器中获得CSRF cookie按照Sanctum文档。

问题是,当我调用Sanctum提供的CSRF令牌端点时,我得到了正确的响应,但没有设置cookie。就像这样,没有错误。不管我是使用next函数还是简单的axios调用

这是我的:

domain: API - publisher.local:8080;前端- publisher.local:3000

next AUTH CONFIG

auth: {
strategies: {
laravelSanctum: {
provider: 'laravel/sanctum',
url: 'http://publisher.local:8080',
endpoints: {
login: { url: '/api/v1/login', method: 'post' },
// logout: { url: '/auth/logout', method: 'post' },
// user: { url: '/auth/user', method: 'get' }
}
},
},
},

AXIOS配置

axios: {
baseURL: 'http://publisher.local:8080/api/v1', // Used as fallback if no runtime config is provided
credentials: true,
proxy: true,
},

sanctum.php

'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
'%s%s',
'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1,local:3000',
Sanctum::currentApplicationUrlWithPort()
))),

session.php

'domain' => env('SESSION_DOMAIN', '.local'),

我尝试了这些设置的不同组合和变化,但都不起作用。你们知道什么是错误的吗?

我想我明白了。我让它工作了。

所以.local不能成为顶级域名,我认为这可能是问题的一部分,但我不确定。

将域更改为仅疼痛旧localhost确实奏效,但此解决方案有一个问题。由于一些我不知道的原因,无论调用哪个端点,我都会在调用API时自动获得XSRF cookie。奇怪。

将域更改为api.publisher.compublisher.com,然后是Sanctum文档中的所有设置。

只是要超级小心的域名,并确保他们匹配和设置是正确的。它是超级容易重新配置的东西,很难诊断它!

希望有帮助!

相关内容

  • 没有找到相关文章

最新更新