首页 > 解决方案 > 由 Heroku 托管后未设置相同的站点 Cookie 属性

问题描述

我一直在尝试使用 Go 设置一个 rest api。一切正常,其余 api 正常工作,出于身份验证目的,我使用基于 JWT 的身份验证并发送一个 http-Only cookie 以成功登录请求。我在前端和后端使用跨站点,所以一切都启用了 cors。

这是http cookie的配置

http.SetCookie(w , &http.Cookie{
        Name : "session_token",
        Value : sessionToken,
        Expires : time.Now().Add( 1 * time.Hour ),
        HttpOnly: true,
        MaxAge :2600000,
        SameSite: 4, 
        Secure :true, 
    })

SameSite : 4表示 SameSite: None 在 cookie 字符串中。供参考:https ://golang.org/src/net/http/cookie.go

当我在本地测试我的应用程序时curl,set-Cookie 具有 SameSite 属性,但是当我在 Heroku 上部署应用程序时,SameSite 属性消失并且不再存在。由于 chrome 的 CSRF 伪造规则,我绝对需要 SameSite 属性。

我不知道如何解决这个问题,对此的任何帮助将不胜感激。

标签: restgoogle-chromegoherokucookies

解决方案


推荐阅读