【问题标题】:Cookies in reponse header not showing in browser响应标头中的 Cookie 未在浏览器中显示
【发布时间】:2019-12-02 12:08:56
【问题描述】:

所以我有一个带有 vue2 前端和 laravel (5.8) 后端的 web 应用程序。通过一些请求,我从后端收到 cookie,如下所示:

        Cookie::queue('cookiename', 'content', 120 , '', '',config('myconfig.force_https_cookies'), true);

在我的计算机本地,一切都按预期工作。 cookie 与响应一起发送,然后显示在 firefox/safari web-developer 工具中。当我在我的服务器上部署应用程序时,cookie 仍会与响应标头一起正确发送,但它们不会显示在开发人员工具或其他任何地方。即使在控制台中输入 document.cookie 也不会显示它们。

现在奇怪的是。在某些时候,我的前端应该使用这些 cookie 向服务器发送请求,这也可以正常工作。所以实际上一切都按预期工作,但 cookie 不知何故仍然是不可见的客户端。

【问题讨论】:

    标签: laravel vue.js cookies


    【解决方案1】:

    1. 您已将最后一个参数 (httpOnly) 设置为 true。

    HttpOnly 表示 cookie 仅通过 http 请求可见,在 js 中不可见。如果你想在 js 中使用它们,你应该将它设置为 false。

    1. 检查secure 参数。

    如果您没有 ssl 并且将 secure 参数设置为 true,则可能会导致问题。

    尝试将其设置为false

    1. pathdomain 参数的默认值 = null

    尝试将路径和域参数的值从 '' 更改为 null

    附:我使用了forever() 方法,因为 IDE 显示了它接受的参数。没关系。

    【讨论】:

    • 您好,感谢您的回复。确实,我将 HttpOnly 设置为 true,因为我实际上不希望 javascript 能够访问它。但 cookie 仍应像在本地环境中一样显示在开发人员工具中。此外,开发人员工具中的“HttpOnly true/false”列也没有任何意义。我使用 SSL 连接,但更改路径/域没有帮助。
    • @felidae 您是否尝试将安全设置为 false?
    • 是的,我也尝试将安全标志设置为 false,没有帮助。 :(
    猜你喜欢
    • 2013-02-12
    • 2023-03-25
    • 2017-12-24
    • 2019-04-26
    • 2014-08-24
    • 1970-01-01
    • 2022-02-16
    • 1970-01-01
    • 2012-05-02
    相关资源
    最近更新 更多