diff --git a/api/go/handler/admin/admin_handler.go b/api/go/handler/admin/admin_handler.go
index c4fa0e0d..a59cad56 100644
--- a/api/go/handler/admin/admin_handler.go
+++ b/api/go/handler/admin/admin_handler.go
@@ -5,6 +5,7 @@ import (
"chatplus/core/types"
"chatplus/handler"
logger2 "chatplus/logger"
+ "chatplus/utils"
"chatplus/utils/resp"
"github.com/gin-contrib/sessions"
@@ -35,7 +36,12 @@ func (h *ManagerHandler) Login(c *gin.Context) {
}
manager := h.App.AppConfig.Manager
if data.Username == manager.Username && data.Password == manager.Password {
- manager.Password = "" // 清空密码
+ err := utils.SetLoginAdmin(c, manager)
+ if err != nil {
+ resp.ERROR(c, "Save session failed")
+ return
+ }
+ manager.Password = "" // 清空密码]
resp.SUCCESS(c, manager)
} else {
resp.ERROR(c, "用户名或者密码错误")
diff --git a/api/go/main.go b/api/go/main.go
index a163f94d..f7785dfb 100644
--- a/api/go/main.go
+++ b/api/go/main.go
@@ -128,6 +128,7 @@ func main() {
group := s.Engine.Group("/api/admin/")
group.POST("login", h.Login)
group.GET("logout", h.Logout)
+ group.GET("session", h.Session)
}),
fx.Invoke(func(s *core.AppServer, h *admin.ApiKeyHandler) {
group := s.Engine.Group("/api/admin/apikey/")
diff --git a/api/go/utils/user.go b/api/go/utils/user.go
index 25dcfe03..41cf3e0b 100644
--- a/api/go/utils/user.go
+++ b/api/go/utils/user.go
@@ -19,7 +19,7 @@ func SetLoginUser(c *gin.Context, user model.User) error {
func SetLoginAdmin(c *gin.Context, admin types.Manager) error {
session := sessions.Default(c)
- session.Set(types.SessionAdmin, admin)
+ session.Set(types.SessionAdmin, admin.Username)
return session.Save()
}
diff --git a/web/.env.production b/web/.env.production
index 87a04a4d..1ab0ff38 100644
--- a/web/.env.production
+++ b/web/.env.production
@@ -1,2 +1,3 @@
VUE_APP_API_HOST=
VUE_APP_WS_HOST=
+VUE_APP_BASE_URL=
diff --git a/web/src/actions/chat.js b/web/src/actions/chat.js
deleted file mode 100644
index db214e64..00000000
--- a/web/src/actions/chat.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/**
- * actions for chat page
- */
\ No newline at end of file
diff --git a/web/src/main.js b/web/src/main.js
index a8fa9b41..18787504 100644
--- a/web/src/main.js
+++ b/web/src/main.js
@@ -18,11 +18,12 @@ const routes = [
{name: 'register', path: '/register', component: Register, meta: {title: '用户注册'}},
{name: 'plus', path: '/chat', component: ChatPlus, meta: {title: 'ChatGPT-智能助手V3'}},
{name: 'admin', path: '/admin', component: Admin, meta: {title: 'Chat-Plus 控制台'}},
- {name: 'admin/login', path: '/admin/login', component: AdminLogin, meta: {title: 'Chat-Plus 控制台登录'}},
+ {name: 'admin-login', path: '/admin/login', component: AdminLogin, meta: {title: 'Chat-Plus 控制台登录'}},
{name: 'test', path: '/test', component: TestPage, meta: {title: '测试页面'}},
{name: 'NotFound', path: '/:all(.*)', component: NotFound, meta: {title: '页面没有找到'}},
]
+// console.log(MY_VARIABLE)
const router = createRouter({
history: createWebHistory(),
routes: routes,
diff --git a/web/src/utils/storage.js b/web/src/utils/storage.js
index 7aa7e815..866dff6b 100644
--- a/web/src/utils/storage.js
+++ b/web/src/utils/storage.js
@@ -5,20 +5,14 @@
*/
const SessionUserKey = 'LOGIN_USER';
-const SessionAdminKey = 'LOGIN_ADMIN';
export function getSessionId() {
const user = getLoginUser();
return user ? user['session_id'] : '';
}
-export function getLoginAdmin() {
- const value = sessionStorage.getItem(SessionAdminKey);
- if (value) {
- return JSON.parse(value);
- } else {
- return null;
- }
+export function removeLoginUser() {
+ sessionStorage.removeItem(SessionUserKey)
}
export function getLoginUser() {
@@ -33,7 +27,3 @@ export function getLoginUser() {
export function setLoginUser(user) {
sessionStorage.setItem(SessionUserKey, JSON.stringify(user))
}
-
-export function setLoginAdmin(admin) {
- sessionStorage.setItem(SessionAdminKey, JSON.stringify(admin))
-}
diff --git a/web/src/views/ChatPlus.vue b/web/src/views/ChatPlus.vue
index 2bd04040..f9620b90 100644
--- a/web/src/views/ChatPlus.vue
+++ b/web/src/views/ChatPlus.vue
@@ -183,9 +183,9 @@
-
-
+
@@ -200,7 +200,6 @@ import {
Close,
Delete,
Edit,
- Monitor,
Plus, Promotion,
RefreshRight,
Search,
@@ -211,7 +210,7 @@ import 'highlight.js/styles/a11y-dark.css'
import {dateFormat, randString, removeArrayItem, renderInputText, UUID} from "@/utils/libs";
import {ElMessage, ElMessageBox} from "element-plus";
import hl from "highlight.js";
-import {getLoginUser, getSessionId} from "@/utils/storage";
+import {getLoginUser, getSessionId, removeLoginUser} from "@/utils/storage";
import {httpGet, httpPost} from "@/utils/http";
import {useRouter} from "vue-router";
import Clipboard from "clipboard";
@@ -269,15 +268,15 @@ if (!user.value) {
ElMessage.error('复制失败!');
})
});
-}
-// 加载系统配置
-httpGet('/api/config/get?key=system').then(res => {
- title.value = res.data.title;
- models.value = res.data.models;
-}).catch(e => {
- ElMessage.error("加载系统配置失败: " + e.message)
-})
+ // 加载系统配置
+ httpGet('/api/config/get?key=system').then(res => {
+ title.value = res.data.title;
+ models.value = res.data.models;
+ }).catch(e => {
+ ElMessage.error("加载系统配置失败: " + e.message)
+ })
+}
const checkSession = function () {
return new Promise((resolve, reject) => {
@@ -631,6 +630,7 @@ const clearAllChats = function () {
const logout = function () {
activelyClose.value = true;
httpGet('/api/user/logout').then(() => {
+ removeLoginUser();
router.push('login');
}).catch(() => {
ElMessage.error('注销失败!');
@@ -720,8 +720,10 @@ const updateUser = function (data) {
}
-
diff --git a/web/src/views/admin/Login.vue b/web/src/views/admin/Login.vue
index dc5815c4..ebcb73e6 100644
--- a/web/src/views/admin/Login.vue
+++ b/web/src/views/admin/Login.vue
@@ -75,7 +75,7 @@ const login = function () {
httpPost('/api/admin/login', {username: username.value.trim(), password: password.value.trim()}).then((res) => {
setLoginUser(res.data)
- router.push("admin")
+ router.push("/admin")
}).catch((e) => {
ElMessage.error('登录失败,' + e.message)
})
diff --git a/web/src/views/admin/Welcome.vue b/web/src/views/admin/Welcome.vue
index d1644d9a..0480371d 100644
--- a/web/src/views/admin/Welcome.vue
+++ b/web/src/views/admin/Welcome.vue
@@ -4,22 +4,14 @@
-
diff --git a/web/vue.config.js b/web/vue.config.js
index de05755e..8bcbe491 100644
--- a/web/vue.config.js
+++ b/web/vue.config.js
@@ -10,16 +10,11 @@ module.exports = defineConfig({
},
plugins: [
new webpack.optimize.MinChunkSizePlugin({minChunkSize: 10000})
- ],
- // resolve: {
- // fallback: {
- // fs: false,
- // path: require.resolve('path-browserify')
- // }
- // }
+ ]
},
- publicPath: '/',
+ publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',
+
outputDir: 'dist',
crossorigin: "anonymous",
devServer: {