diff --git a/backend/api/api.go b/backend/api/api.go index 7a5dd0a..88a99f1 100644 --- a/backend/api/api.go +++ b/backend/api/api.go @@ -57,14 +57,7 @@ func (a *APIHandler) postHandler(c *gin.Context) { logger.Infof("Unable to get session's max age from DB") } - if sessionMaxAge > 0 { - err = SetMaxAge(c, sessionMaxAge*60) - if err != nil { - logger.Infof("Unable to set session's max age") - } - } - - err = SetLoginUser(c, loginUser) + err = SetLoginUser(c, loginUser, sessionMaxAge) if err == nil { logger.Info("user ", loginUser, " login success") } else { diff --git a/backend/api/session.go b/backend/api/session.go index 545c8f7..3e30395 100644 --- a/backend/api/session.go +++ b/backend/api/session.go @@ -4,7 +4,7 @@ import ( "encoding/gob" "s-ui/database/model" - sessions "github.com/Calidity/gin-sessions" + "github.com/gin-contrib/sessions" "github.com/gin-gonic/gin" ) @@ -16,17 +16,26 @@ func init() { gob.Register(model.User{}) } -func SetLoginUser(c *gin.Context, userName string) error { +func SetLoginUser(c *gin.Context, userName string, maxAge int) error { + options := sessions.Options{ + Path: "/", + Secure: false, + } + if maxAge > 0 { + options.MaxAge = maxAge * 60 + } + s := sessions.Default(c) s.Set(loginUser, userName) + s.Options(options) + return s.Save() } -func SetMaxAge(c *gin.Context, maxAge int) error { +func SetMaxAge(c *gin.Context) error { s := sessions.Default(c) s.Options(sessions.Options{ - Path: "/", - MaxAge: maxAge, + Path: "/", }) return s.Save() } diff --git a/backend/go.mod b/backend/go.mod index ced8fc7..e5d3398 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -3,7 +3,6 @@ module s-ui go 1.22.5 require ( - github.com/Calidity/gin-sessions v1.3.1 github.com/gin-contrib/gzip v1.0.1 github.com/gin-gonic/gin v1.10.0 github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 @@ -22,6 +21,7 @@ require ( github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/gabriel-vasile/mimetype v1.4.4 // indirect + github.com/gin-contrib/sessions v1.0.1 github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/go-playground/locales v0.14.1 // indirect diff --git a/backend/go.sum b/backend/go.sum index 214134c..ed44692 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -1,5 +1,3 @@ -github.com/Calidity/gin-sessions v1.3.1 h1:nF3dCBWa7TZ4j26iYLwGRmzZy9YODhWoOS3fmi+snyE= -github.com/Calidity/gin-sessions v1.3.1/go.mod h1:I0+QE6qkO50TeN/n6If6novvxHk4Isvr23U8EdvPdns= github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY= github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4= github.com/aead/cmac v0.0.0-20160719120800-7af84192f0b1 h1:+JkXLHME8vLJafGhOH4aoV2Iu8bR55nU6iKMVfYVLjY= @@ -33,6 +31,8 @@ github.com/gabriel-vasile/mimetype v1.4.4 h1:QjV6pZ7/XZ7ryI2KuyeEDE8wnh7fHP9YnQy github.com/gabriel-vasile/mimetype v1.4.4/go.mod h1:JwLei5XPtWdGiMFB5Pjle1oEeoSeEuJfJE+TtfvdB/s= github.com/gin-contrib/gzip v1.0.1 h1:HQ8ENHODeLY7a4g1Au/46Z92bdGFl74OhxcZble9WJE= github.com/gin-contrib/gzip v1.0.1/go.mod h1:njt428fdUNRvjuJf16tZMYZ2Yl+WQB53X5wmhDwXvC4= +github.com/gin-contrib/sessions v1.0.1 h1:3hsJyNs7v7N8OtelFmYXFrulAf6zSR7nW/putcPEHxI= +github.com/gin-contrib/sessions v1.0.1/go.mod h1:ouxSFM24/OgIud5MJYQJLpy6AwxQ5EYO9yLhbtObGkM= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= diff --git a/backend/web/web.go b/backend/web/web.go index 794f661..2fbfd81 100644 --- a/backend/web/web.go +++ b/backend/web/web.go @@ -18,9 +18,9 @@ import ( "strconv" "strings" - sessions "github.com/Calidity/gin-sessions" - "github.com/Calidity/gin-sessions/cookie" "github.com/gin-contrib/gzip" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/cookie" "github.com/gin-gonic/gin" ) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 8cab895..010cf09 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -31,7 +31,7 @@ "@vitejs/plugin-vue": "^5.0.5", "eslint-plugin-vue": "^9.26.0", "material-design-icons-iconfont": "^6.7.0", - "sass": "^1.77.6", + "sass": "1.77.6", "typescript": "^5.5.2", "unplugin-fonts": "^1.1.1", "vite": "^5.3.2", @@ -2864,9 +2864,9 @@ } }, "node_modules/sass": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", - "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "devOptional": true, "license": "MIT", "dependencies": { diff --git a/frontend/package.json b/frontend/package.json index 36eb24c..6b12c10 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -32,7 +32,7 @@ "@vitejs/plugin-vue": "^5.0.5", "eslint-plugin-vue": "^9.26.0", "material-design-icons-iconfont": "^6.7.0", - "sass": "^1.77.6", + "sass": "1.77.6", "typescript": "^5.5.2", "unplugin-fonts": "^1.1.1", "vite": "^5.3.2",