如果您从不同域发送请求,则不会设置 cookie
cookies are not set if you send request from different domain
圣殿版本:2.11.2
Laravel版本:8.55.0
PHP版本:7.4.20
Laravel 是 运行 在:http://127.0.0.1:8000
前端 (vue) 运行 on: http://localhost:3000
我将以下所有内容放入我的 .env 文件
COOKIE_SAME_SITE_POLICY=strict
SESSION_SECURE_COOKIE=false
SESSION_DOMAIN='.127.0.0.1'
SANCTUM_STATEFUL_DOMAINS='.localhost,.localhost:3000,127.0.0.1,127.0.0.1:8000,::1'
当我尝试从不同的域进行身份验证时,出现 419 错误 CSRF 令牌不匹配,第一个必须设置 cookie 的请求“http://127.0.0.1:8000/sanctum/csrf-cookie”确实如此没有设置任何东西,但是如果我在 laravel 实例中尝试相同的请求,它会设置 cookie 并按预期工作
每个相同的请求如何在 postman 中成功设置 cookie
重现步骤:
- 安装laravel“composer create-project laravel/laravel sanctum”
- 将
'supports_credentials' => false,
从 /config/cors 更改为 'supports_credentials' => true,
。php
- 在“http://localhost:3000”上设置 vue 应用程序并向“http://127.0.0.1:8000/sanctum/csrf-cookie”发送请求,它不会设置 cookie。
出于安全原因,您不能为不同的域设置 cookie
圣殿版本:2.11.2
Laravel版本:8.55.0
PHP版本:7.4.20
Laravel 是 运行 在:http://127.0.0.1:8000
前端 (vue) 运行 on: http://localhost:3000
我将以下所有内容放入我的 .env 文件
COOKIE_SAME_SITE_POLICY=strict
SESSION_SECURE_COOKIE=false
SESSION_DOMAIN='.127.0.0.1'
SANCTUM_STATEFUL_DOMAINS='.localhost,.localhost:3000,127.0.0.1,127.0.0.1:8000,::1'
当我尝试从不同的域进行身份验证时,出现 419 错误 CSRF 令牌不匹配,第一个必须设置 cookie 的请求“http://127.0.0.1:8000/sanctum/csrf-cookie”确实如此没有设置任何东西,但是如果我在 laravel 实例中尝试相同的请求,它会设置 cookie 并按预期工作
每个相同的请求如何在 postman 中成功设置 cookie
重现步骤:
- 安装laravel“composer create-project laravel/laravel sanctum”
- 将
'supports_credentials' => false,
从 /config/cors 更改为'supports_credentials' => true,
。php - 在“http://localhost:3000”上设置 vue 应用程序并向“http://127.0.0.1:8000/sanctum/csrf-cookie”发送请求,它不会设置 cookie。
出于安全原因,您不能为不同的域设置 cookie