亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang gorilla/session 在檢查會話時得到 nil 值

golang gorilla/session 在檢查會話時得到 nil 值

Go
瀟瀟雨雨 2021-09-27 17:44:20
我已經導入了包import (    "github.com/gorilla/sessions"    "github.com/gorilla/mux"    //CORS    "github.com/rs/cors"    "github.com/justinas/alice"  )并定義 store 和 main 方法如下var store = sessions.NewCookieStore([]byte("something-very-secret")) const My_UI="http://localhost:3000"func init() {    store.Options = &sessions.Options{        Path:     "/",        MaxAge:   3600 * 1, // 1 hour        HttpOnly: true,    }}var router = mux.NewRouter() //MUX Handeler//MAIN Functionfunc main() {    c := cors.New(cors.Options{        AllowedOrigins: []string{My_UI},    })    router.HandleFunc("/submitted",Login)    router.HandleFunc("/check",GetSession)    http.Handle("/", router)    chain := alice.New(c.Handler).Then(router) //CORS enable    fmt.Println("server started at port 8080")    http.ListenAndServe(":8080", chain)}在我的方法中,我按照 gorilla doc 中的描述創建并設置了會話值func Login(w http.ResponseWriter, r *http.Request) {             fmt.Println("In login----------->")    sess := GetCon()                              //get connection session    defer sess.Close()                           //close session        c := sess.DB("mydb").C("users")      //collection-> select db table    session1, _ := store.Get(r, "loginSession")  //login session    //parse json data      form := LoginUser{}    err := json.NewDecoder(r.Body).Decode(&form)    if err !=nil {        fmt.Println(err)    }
查看完整描述

2 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

您的 GetSession 函數出錯了。請將session變量更改為session1


還要檢查會話值是否存在最好這樣做:


session, err := store.Get(r, ssid)

    if err == nil {

        if value, ok := session.Values["foo"].(string); ok {

            session_data = value

        }

    }


查看完整回答
反對 回復 2021-09-27
  • 2 回答
  • 0 關注
  • 342 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號