当前位置: 首页 > 知识库问答 >
问题:

无法从反应js项目中的Go语言服务器获取cookie

习旻
2023-03-14

我在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()
    }

并且目前正在使用 Cookie Js 来获取 Cookie:

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

但它打印未定义。我在浏览器的网络选项卡中检查了请求头,看起来很好:

网络选项卡截图

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

共有1个答案

轩辕弘雅
2023-03-14

提供从JS到授权cookies的访问是不可接受的,这将导致您发生严重事件,导致用户失去对其帐户的访问权限:https://en.wikipedia.org/wiki/Secure_cookie.

但是如果你仍然想这样做,正如奥斯曼在评论中所说,你需要确保你以正确的方式设置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,
})
 类似资料:
  • 本文向大家介绍Go语言Echo服务器的方法,包括了Go语言Echo服务器的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言Echo服务器的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • Go语言项目 所有的编程语言都反映了语言设计者对编程哲学的反思,通常包括之前的语言所暴露的一些不足地方的改进。Go项目是在Google公司维护超级复杂的几个软件系统遇到的一些问题的反思(但是这类问题绝不是Google公司所特有的)。 正如Rob Pike所说,“软件的复杂性是乘法级相关的”,通过增加一个部分的复杂性来修复问题通常将慢慢地增加其他部分的复杂性。通过增加功能、选项和配置是修复问题的最快

  • 本文向大家介绍Go语言实现简单Web服务器的方法,包括了Go语言实现简单Web服务器的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言实现简单Web服务器的方法。分享给大家供大家参考。具体分析如下: 包 http 通过任何实现了 http.Handler 的值来响应 HTTP 请求: package http type Handler interface { ServeHTTP

  • 本文向大家介绍Go语言Telnet回音服务器的实现,包括了Go语言Telnet回音服务器的实现的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Go语言Telnet回音服务器,分享给大家,具体如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我用Go语言创建了一个示例gRPC客户端和服务器(使用原型)。我理解Go语言中的并发模型。但是,我正在尝试理解服务器中接受来自同一客户端(客户端上的多个goroutines)/多个客户端的并行请求的并发模型。 更具体地说: 当一个新的gRPC呼叫到来时,服务器是否创建了一个新的goroutine

  • 本文向大家介绍Go语言中使用反射的方法,包括了Go语言中使用反射的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言中使用反射的方法。分享给大家供大家参考。具体实现方法如下: 创建实例如下: 完整代码如下: 希望本文所述对大家的Go语言程序设计有所帮助。