【问题标题】:cookies are not set if you send request from different domain如果您从不同的域发送请求,则不会设置 cookie
【发布时间】:2021-10-22 17:40:50
【问题描述】:
  • 圣所版本:2.11.2

  • Laravel 版本:8.55.0

  • PHP 版本:7.4.20

  • Laravel 正在运行:http://127.0.0.1:8000

  • 前端(vue)运行在: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 并按预期工作

每个相同的请求如何在邮递员中成功设置 cookie

复制步骤:

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

【问题讨论】:

    标签: php laravel laravel-sanctum


    【解决方案1】:

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

    【讨论】:

    • 那他们为什么设置** SANCTUM_STATEFUL_DOMAINS** 不是为了接收来自其他域(源)的请求
    猜你喜欢
    • 2015-02-09
    • 2019-02-11
    • 2012-02-11
    • 1970-01-01
    • 2015-04-24
    • 2015-07-27
    • 2020-06-30
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多