github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/pkg/util/session.go (about)

     1  package util
     2  
     3  import (
     4  	"github.com/gin-contrib/sessions"
     5  	"github.com/gin-gonic/gin"
     6  )
     7  
     8  // SetSession 设置session
     9  func SetSession(c *gin.Context, list map[string]interface{}) {
    10  	s := sessions.Default(c)
    11  	for key, value := range list {
    12  		s.Set(key, value)
    13  	}
    14  
    15  	err := s.Save()
    16  	if err != nil {
    17  		Log().Warning("无法设置 Session 值:%s", err)
    18  	}
    19  }
    20  
    21  // GetSession 获取session
    22  func GetSession(c *gin.Context, key string) interface{} {
    23  	s := sessions.Default(c)
    24  	return s.Get(key)
    25  }
    26  
    27  // DeleteSession 删除session
    28  func DeleteSession(c *gin.Context, key string) {
    29  	s := sessions.Default(c)
    30  	s.Delete(key)
    31  	s.Save()
    32  }
    33  
    34  // ClearSession 清空session
    35  func ClearSession(c *gin.Context) {
    36  	s := sessions.Default(c)
    37  	s.Clear()
    38  	s.Save()
    39  }