From 46d6fbf033cd540bc3f2aa5a4183dd133f77f331 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 5 Jun 2025 17:12:33 +0800 Subject: [PATCH] :art: Add a 'Remember me' checkbox when logging in to save a session https://github.com/siyuan-note/siyuan/pull/14964 https://github.com/siyuan-note/siyuan/issues/13147 --- kernel/model/session.go | 7 +++++++ kernel/server/serve.go | 5 ++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/kernel/model/session.go b/kernel/model/session.go index 9facca9d5..ef3bc103a 100644 --- a/kernel/model/session.go +++ b/kernel/model/session.go @@ -92,6 +92,13 @@ func LoginAuth(c *gin.Context) { ret.Code = 1 ret.Msg = Conf.Language(22) logging.LogWarnf("invalid captcha") + + workspaceSession.Captcha = gulu.Rand.String(7) // https://github.com/siyuan-note/siyuan/issues/13147 + if err := session.Save(c); err != nil { + logging.LogErrorf("save session failed: " + err.Error()) + c.Status(http.StatusInternalServerError) + return + } return } } diff --git a/kernel/server/serve.go b/kernel/server/serve.go index dea0ed7fc..8de6fc91a 100644 --- a/kernel/server/serve.go +++ b/kernel/server/serve.go @@ -36,7 +36,7 @@ import ( "github.com/emersion/go-webdav/carddav" "github.com/gin-contrib/gzip" "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/memstore" + "github.com/gin-contrib/sessions/cookie" "github.com/gin-gonic/gin" "github.com/mssola/useragent" "github.com/olahol/melody" @@ -61,8 +61,7 @@ const ( ) var ( - // 这里用的是内存存储,意味着重启后所有 session 会丢失,需要重新登录 - sessionStore = memstore.NewStore([]byte("ATN51UlxVq1Gcvdf")) + sessionStore = cookie.NewStore([]byte("ATN51UlxVq1Gcvdf")) HttpMethods = []string{ http.MethodGet,