diff options
| author | MHSanaei <mc.sanaei@gmail.com> | 2023-02-09 22:18:06 +0300 |
|---|---|---|
| committer | MHSanaei <mc.sanaei@gmail.com> | 2023-02-09 22:18:06 +0300 |
| commit | b73e4173a3c1e69e02ad6b4e3b43e425e57a5be9 (patch) | |
| tree | d95d2f5e903d97082e11eb9f9023c165b1bde388 /web/session | |
3x-ui
Diffstat (limited to 'web/session')
| -rw-r--r-- | web/session/session.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/web/session/session.go b/web/session/session.go new file mode 100644 index 00000000..2dfe94b6 --- /dev/null +++ b/web/session/session.go @@ -0,0 +1,46 @@ +package session + +import ( + "encoding/gob" + "github.com/gin-contrib/sessions" + "github.com/gin-gonic/gin" + "x-ui/database/model" +) + +const ( + loginUser = "LOGIN_USER" +) + +func init() { + gob.Register(model.User{}) +} + +func SetLoginUser(c *gin.Context, user *model.User) error { + s := sessions.Default(c) + s.Set(loginUser, user) + return s.Save() +} + +func GetLoginUser(c *gin.Context) *model.User { + s := sessions.Default(c) + obj := s.Get(loginUser) + if obj == nil { + return nil + } + user := obj.(model.User) + return &user +} + +func IsLogin(c *gin.Context) bool { + return GetLoginUser(c) != nil +} + +func ClearSession(c *gin.Context) { + s := sessions.Default(c) + s.Clear() + s.Options(sessions.Options{ + Path: "/", + MaxAge: -1, + }) + s.Save() +} |
