登录
首页 >  Golang >  Go问答

无法在React JS项目中与Golang服务器共享Cookie

来源:stackoverflow

时间:2024-03-08 10:00:25 488浏览 收藏

一分耕耘,一分收获!既然都打开这篇《无法在React JS项目中与Golang服务器共享Cookie》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我有一个用 golang 编写的简单服务器,它应该处理登录请求并设置一些 cookie。 但问题是我无法访问 react js 项目中的 cookie 我用以下代码设置cookie:

if otpvalidate.result.status == "success" {
        log.println("setting cookies")
        session := sessions.defaultmany(gincontext, "session")
        session.set("mobilenumber", number)
        session.set("guid", otpvalidate.guid)
        session.set("personid", otpvalidate.personid)
        if err != nil {
            logger.error(logger.funcname() + err.error())
        }
        session.options(sessions.options{maxage: 2592000}) // 30 day
        session.save()
    }

目前使用cookies js来获取cookie:

const cookie = Cookies.get('session')
    console.log(cookie)

但它打印未定义 我检查了浏览器网络选项卡内的请求标头,看起来不错:

网络选项卡屏幕截图

但我仍然无法让他们做出反应


正确答案


从 js 提供对授权 cookie 的访问是不可接受的,这将导致您发生严重事件,导致用户无法访问其帐户:https://en.wikipedia.org/wiki/Secure_cookie

但如果你仍然想这样做,正如 osman 在评论中所说,你需要确保以正确的方式设置 cookie:

http.SetCookie(w, &http.Cookie{
    Name:     `session`,
    Value:    url.QueryEscape(sid),
    Expires:  time.Now().Add(time.Hour),
    Path:     "/",
    Secure:   false, // Secure = false allow to access from js
    HttpOnly: true,
    SameSite: http.SameSiteNoneMode,
})

本篇关于《无法在React JS项目中与Golang服务器共享Cookie》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>