猿问

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

我试图创建一个 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 Line

cookie := 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

}

提前致谢。


哈士奇WWW
浏览 154回答 1
1回答

森栏

这是此问题的解决方案。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**        }    }有关更多详细信息,请单击此处。这个链接对我帮助很大。希望有人会发现这个答案有用。
随时随地看视频慕课网APP

相关分类

Go
我要回答