Răsfoiți Sursa

change session name

mhsanaei 8 luni în urmă
părinte
comite
02ae61fe6b
4 a modificat fișierele cu 15 adăugiri și 12 ștergeri
  1. 1 1
      web/controller/index.go
  2. 1 0
      web/html/xui/settings.html
  3. 12 10
      web/session/session.go
  4. 1 1
      web/web.go

+ 1 - 1
web/controller/index.go

@@ -94,7 +94,7 @@ func (a *IndexController) login(c *gin.Context) {
 func (a *IndexController) logout(c *gin.Context) {
 	user := session.GetLoginUser(c)
 	if user != nil {
-		logger.Info(user.Username, "logged out successfully")
+		logger.Info(user.Username, " logged out successfully")
 	}
 	session.ClearSession(c)
 	c.Redirect(http.StatusTemporaryRedirect, c.GetString("base_path"))

+ 1 - 0
web/html/xui/settings.html

@@ -503,6 +503,7 @@
         this.loading(false);
         if (msg.success) {
           this.user = {};
+          window.location.replace(basePath + "logout");
         }
       },
       async restartPanel() {

+ 12 - 10
web/session/session.go

@@ -9,9 +9,7 @@ import (
 	"github.com/gin-gonic/gin"
 )
 
-const (
-	loginUser = "LOGIN_USER"
-)
+const loginUser = "LOGIN_USER"
 
 func init() {
 	gob.Register(model.User{})
@@ -34,24 +32,28 @@ func SetMaxAge(c *gin.Context, maxAge int) error {
 
 func GetLoginUser(c *gin.Context) *model.User {
 	s := sessions.Default(c)
-	obj := s.Get(loginUser)
-	if obj == nil {
-		return nil
+	if obj := s.Get(loginUser); obj != nil {
+		if user, ok := obj.(model.User); ok {
+			return &user
+		}
 	}
-	user := obj.(model.User)
-	return &user
+	return nil
 }
 
 func IsLogin(c *gin.Context) bool {
 	return GetLoginUser(c) != nil
 }
 
-func ClearSession(c *gin.Context) {
+func ClearSession(c *gin.Context) error {
 	s := sessions.Default(c)
 	s.Clear()
 	s.Options(sessions.Options{
 		Path:   "/",
 		MaxAge: -1,
 	})
-	s.Save()
+	if err := s.Save(); err != nil {
+		return err
+	}
+	c.SetCookie("3x-ui", "", -1, "/", "", false, true)
+	return nil
 }

+ 1 - 1
web/web.go

@@ -180,7 +180,7 @@ func (s *Server) initRouter() (*gin.Engine, error) {
 	assetsBasePath := basePath + "assets/"
 
 	store := cookie.NewStore(secret)
-	engine.Use(sessions.Sessions("session", store))
+	engine.Use(sessions.Sessions("3x-ui", store))
 	engine.Use(func(c *gin.Context) {
 		c.Set("base_path", basePath)
 	})