如果您从不同域发送请求,则不会设置 cookie

cookies are not set if you send request from different domain

我将以下所有内容放入我的 .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

重现步骤:

  1. 安装laravel“composer create-project laravel/laravel sanctum”
  2. 'supports_credentials' => false,/config/cors 更改为 'supports_credentials' => true,。php
  3. 在“http://localhost:3000”上设置 vue 应用程序并向“http://127.0.0.1:8000/sanctum/csrf-cookie”发送请求,它不会设置 cookie。

出于安全原因,您不能为不同的域设置 cookie