diff --git a/server/server.go b/server/server.go index d4e194d9..e8aede47 100644 --- a/server/server.go +++ b/server/server.go @@ -127,9 +127,9 @@ func (s *Server) Run(webRoot embed.FS, path string, debug bool) { // 定时清理过期的会话 go func() { for { - for key, context := range s.ChatContexts { + for key, ctx := range s.ChatContexts { // 清理超过 60min 没有更新,则表示为过期会话 - if time.Now().Unix()-context.LastAccessTime > int64(s.Config.Chat.ChatContextExpireTime) { + if time.Now().Unix()-ctx.LastAccessTime > int64(s.Config.Chat.ChatContextExpireTime) { logger.Infof("清理会话上下文: %s", key) delete(s.ChatContexts, key) } @@ -279,7 +279,8 @@ func (s *Server) LoginHandle(c *gin.Context) { c.JSON(http.StatusOK, types.BizVo{Code: types.Failed, Message: types.ErrorMsg}) return } - user, err := GetUser(data.Token) + username := strings.TrimSpace(data.Token) + user, err := GetUser(username) if err != nil { c.JSON(http.StatusOK, types.BizVo{Code: types.Failed, Message: "Invalid user"}) return @@ -287,13 +288,13 @@ func (s *Server) LoginHandle(c *gin.Context) { sessionId := utils.RandString(42) session := sessions.Default(c) - session.Set(sessionId, data.Token) + session.Set(sessionId, username) err = session.Save() if err != nil { logger.Error("Error for save session: ", err) } // 记录客户端 IP 地址 - s.ChatSession[sessionId] = types.ChatSession{ClientIP: c.ClientIP(), Username: data.Token, SessionId: sessionId} + s.ChatSession[sessionId] = types.ChatSession{ClientIP: c.ClientIP(), Username: username, SessionId: sessionId} // 更新用户激活时间 user.ActiveTime = time.Now().Unix() if user.ExpiredTime == 0 { diff --git a/web/src/main.js b/web/src/main.js index ffe052d1..16e9eea0 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -9,6 +9,7 @@ import NotFound from './views/404.vue' import TestPage from './views/Test.vue' import Home from "@/views/Home.vue"; import './utils/prototype' +import ChatFree from "@/views/ChatFree.vue"; const routes = [ { @@ -31,6 +32,11 @@ const routes = [ title: '测试页面' } }, + { + name: 'free', path: '/free', component: ChatFree, meta: { + title: 'ChatGPT 免费版' + } + }, { name: 'NotFound', path: '/:all(.*)', component: NotFound, meta: { title: '页面没有找到' diff --git a/web/src/views/Chat.vue b/web/src/views/Chat.vue index 258a5af3..090e8728 100644 --- a/web/src/views/Chat.vue +++ b/web/src/views/Chat.vue @@ -143,7 +143,6 @@ export default defineComponent({ components: {RefreshRight, VideoPause, ChatPrompt, ChatReply, Tools, Lock, Delete, ConfigDialog}, data() { return { - title: 'ChatGPT 控制台', logo: 'images/logo.png', chatData: [], chatRoles: [], diff --git a/web/src/views/ChatFree.vue b/web/src/views/ChatFree.vue new file mode 100644 index 00000000..986ab28e --- /dev/null +++ b/web/src/views/ChatFree.vue @@ -0,0 +1,694 @@ + + + + +