【问题标题】:How to deal with with cookies, settings persistence如何处理cookies、设置持久化
【发布时间】:2021-05-29 08:19:28
【问题描述】:

[开发] - 一切正常(没有问题,因为 cookie 设置在同一个域 'localhost' 上)

[PROD / LIVE] - 链接如下

问题:cookie 设置不正确或没有持久化,我不知道为什么,如果有人可以告诉我可能是什么原因,如您在网络中看到的那样选项卡,它设置了 cookie,但它没有把它放在 Application > Storage > Cookies 中,如果我解释得不是很好,你可以看看。

https://gta-open-q99pjtak6-patricksubang.vercel.app/ 用户名:demo 密码:demo

前端,POST/GET 请求

const sendRequest = async (method, endpoint, custom) => {
  const isProd =
    process.env.NODE_ENV === "development"
      ? "http://localhost:8000/"
      : "https://gta-open.ga/";

  const url = isProd + endpoint;
  const response = await fetch(url, {
    method: method,
    mode: "cors",
    credentials: "include",
    ...custom,
  });

  return response;
};

使用 gorrilla\sessions 设置会话 cookie

Cookie.Options.Path = "/"
Cookie.Options.HttpOnly = true
Cookie.Options.SameSite = http.SameSiteNoneMode
state := false
if os.Getenv("ENV") == "PROD" {
    state = true
}
Cookie.Options.Secure = state

func GenerateSession(w http.ResponseWriter, r *http.Request, uid int) (err error) {

    session, _ := Cookie.Get(r, "sessionid")
    session.Values["accountID"] = uid
    // Save it before we write to the response/return from the handler.
    err = session.Save(r, w)
    if err != nil {
        return
    }
    return
}

如果有人可以给我一个粗略的想法,或者问题的原因会有所帮助

非常感谢!

【问题讨论】:

    标签: reactjs go cookies session-cookies


    【解决方案1】:

    不熟悉 Golang 后端或 gorrilla 会话,但我很确定这是您配置 cookie 设置的方式。具体来说,我认为 domain 名称设置为 gta-open.gavercel.app 不匹配,因此它要么被浏览器的第三方 cookie 设置阻止,要么因为域名不匹配而未被使用。

    例如,被第 3 方阻止的 cookie(用户的浏览器偏好):

    因此,没有设置 cookie:

    但是,如果我允许来自跨域的 3rd 方 cookie,则设置 cookie:

    但是,由于它与应用具有不同的,因此没有被使用:


    就此而言,我强烈建议您购买自己的域名。它们非常便宜(每年 10 美元/7gbp 或更少),然后您可以设置您的 vercel 应用程序以使用 custom domain。然后,将您的 cookie 设置为使用该自定义域名,它应该会一帆风顺。

    否则,您必须设置 cookie 以在生产中使用子域的 .vercel.app(不建议这样做,因为 vercel 在其子域上托管了很多应用程序)或使用域 gta-open-q99pjtak6-patricksubang.vercel.app,但这是一种傻。

    【讨论】:

      猜你喜欢
      • 2014-09-02
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 2014-07-06
      • 2011-11-20
      • 2021-02-23
      相关资源
      最近更新 更多