Cookie不会在同一域上的不同页面之间保留

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie不会在同一域上的不同页面之间保留相关的知识,希望对你有一定的参考价值。

在我的代码的一部分,我保存这样的cookie

if encoded, err := s.Encode(USER_ID_COOKIE_NAME, value); err == nil {
            user_id := &http.Cookie{
                Name:  USER_ID_COOKIE_NAME,
                Value: encoded,
                Path:  "/",
                HttpOnly: true,
            }
            http.SetCookie(w, user_id)
        }0

当我这样做时,它会保存一个cookie,但当我尝试去另一条路径时,cookie就不存在了。

例如:登录后,我在路径“/ oauth / square”,当我点击“/ settings”链接时,我的cookie就消失了。我可以确认在初始路径时设置了cookie。我也在浏览器中添加了cookie的图像。我如何设置cookie,以便它在该域上的任何地方持续存在?

screenshot of cookie from browser

答案

解决方案是设置域。一旦我这样做,一切都按预期工作。

以上是关于Cookie不会在同一域上的不同页面之间保留的主要内容,如果未能解决你的问题,请参考以下文章

在同一域上的站点之间共享 cookie - Headless / Decoupled CMS

在同一域上的不同窗口之间进行通信[重复]

如果 cookie 设置为同一域上的所有子域,则删​​除 cookie 不起作用

同一域上的多个 Laravel 5 项目

301 将所有页面重定向到新域上的同一页面

允许子 iframe 从不同域调用其父窗口上的函数