diff options
Diffstat (limited to 'web/session/session.go')
| -rw-r--r-- | web/session/session.go | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/web/session/session.go b/web/session/session.go index f5055efd..13aedad8 100644 --- a/web/session/session.go +++ b/web/session/session.go @@ -10,38 +10,41 @@ import ( ) const ( - loginUser = "LOGIN_USER" - defaultPath = "/" + loginUserKey = "LOGIN_USER" + defaultPath = "/" ) func init() { gob.Register(model.User{}) } -func SetLoginUser(c *gin.Context, user *model.User) error { +func SetLoginUser(c *gin.Context, user *model.User) { + if user == nil { + return + } s := sessions.Default(c) - s.Set(loginUser, user) - return s.Save() + s.Set(loginUserKey, *user) } -func SetMaxAge(c *gin.Context, maxAge int) error { +func SetMaxAge(c *gin.Context, maxAge int) { s := sessions.Default(c) s.Options(sessions.Options{ Path: defaultPath, MaxAge: maxAge, HttpOnly: true, }) - return s.Save() } func GetLoginUser(c *gin.Context) *model.User { s := sessions.Default(c) - obj := s.Get(loginUser) + obj := s.Get(loginUserKey) if obj == nil { return nil } user, ok := obj.(model.User) if !ok { + + s.Delete(loginUserKey) return nil } return &user @@ -51,7 +54,7 @@ func IsLogin(c *gin.Context) bool { return GetLoginUser(c) != nil } -func ClearSession(c *gin.Context) error { +func ClearSession(c *gin.Context) { s := sessions.Default(c) s.Clear() s.Options(sessions.Options{ @@ -59,5 +62,4 @@ func ClearSession(c *gin.Context) error { MaxAge: -1, HttpOnly: true, }) - return s.Save() } |
