我是Go的新手,我在使用mux-gorilla会话/ Cookie的代码段时遇到了问题。我希望通过以下功能减少许多冗余:
func isLoggedIn(w http.ResponseWriter, r *http.Request) (bool, *Session) {
session, err := store.Get(r, "user")
var logged bool = true
if err != nil { // Need to delete the cookie.
expired := &http.Cookie{Path: "/", Name: "user", MaxAge: -1, Expires: time.Now().Add(-100 * time.Hour)}
http.SetCookie(w, expired)
logged := false
}
return logged, session
}
不幸的是,我收到以下编译错误:undefined: Session
如果store.Get函数可以返回此类型,那么该类型是如何定义的?请注意,商店之前已声明为store = sessions.NewCookieStore([]byte(secret))
,使用" gorilla / sessions"封装
答案 0 :(得分:2)
Go需要知道在Session
中找到sessions.Session
的包。
错误在您的func isLoggedIn
所以修改后的代码将是:
import "github.com/gorilla/sessions"
func isLoggedIn(w http.ResponseWriter, r *http.Request) (bool, *sessions.Session) {
...
}