为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 BSON _Id 分配给 cookie (Go, Mongodb)

如何将 BSON _Id 分配给 cookie (Go, Mongodb)

Go
哈士奇WWW 2021-12-07 16:43:46
我试图创建一个 go cookie。我想从 Mongodb 分配 Id 以存储在 Cookie 中。但是在编译时我收到如下错误:-“结构文字中未知的 http.Cookie 字段‘Id’”以下是我的代码:-getUser := user.CheckDB()expiration := time.Now().Add(365 * 24 * time.Hour)//The Error is Caused by the Next Linecookie := http.Cookie{Id: getUser[0].Id, Name: getUser[0].Email, Value: getUser[0].Password, Expires: expiration}http.SetCookie(w, &cookie)func (this *User) CheckDB() []User {    var results []User    sess, db := GetDatabase()    defer sess.Close()    c := db.C("user")    uname := &this.Email    err := c.Find(bson.M{"email": *uname}).Sort("-id").All(&results)    if err != nil {        panic(err)    } else {        fmt.Println("Results All: ", results)        return results    }}type Cookie struct {    Id         bson.ObjectId `bson:"_id,omitempty"`    Name       string    Value      string    Path       string    Domain     string    Expires    time.Time    RawExpires string    MaxAge     int    Secure     bool    HttpOnly   bool    Raw        string    Unparsed   []string}提前致谢。
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

这是此问题的解决方案。


Cookie 结构如下:


type Cookie struct {    

    Name       string

    Value      string

    Path       string

    Domain     string

    Expires    time.Time

    RawExpires string

    MaxAge   int

    Secure   bool

    HttpOnly bool

    Raw      string

    Unparsed []string

}

饼干制作


 value := map[string]string{

        "id": cookieId,

    }

    if encoded, err := ckieHandler.Encode("session", value); err == nil {

        cookie := &http.Cookie{

        Name:  "session",

        Value: encoded,

        Path:  "/",

        }

        http.SetCookie(response, cookie)

    }

饼干呼叫


if cookie, err := request.Cookie("session"); err == nil {

        cookieValue := make(map[string]string)

        if err = ckieHandler.Decode("session", cookie.Value, &cookieValue); err == nil {

            id = cookieValue["id"] // **Pass BSON ID here**

        }

    }

有关更多详细信息,请单击此处。这个链接对我帮助很大。希望有人会发现这个答案有用。


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信