From 906c5c37baeef66eda51c3d6c68333aefeaf853f Mon Sep 17 00:00:00 2001 From: wsy182 <2392948297@qq.com> Date: Fri, 27 Feb 2026 11:31:33 +0800 Subject: [PATCH] feat(web): add study session ui and auth user/logout handling --- memora-web/src/modules/auth/auth.ts | 9 +++- memora-web/src/views/Login.vue | 6 ++- memora-web/src/views/Memory.vue | 78 +++++++++++++++++++++++++++-- memora-web/src/views/Settings.vue | 15 ++++++ 4 files changed, 102 insertions(+), 6 deletions(-) diff --git a/memora-web/src/modules/auth/auth.ts b/memora-web/src/modules/auth/auth.ts index cb41dc7..d99041c 100644 --- a/memora-web/src/modules/auth/auth.ts +++ b/memora-web/src/modules/auth/auth.ts @@ -1,6 +1,13 @@ const TOKEN_KEY = 'memora_token' +const USER_KEY = 'memora_user_id' export const getToken = () => localStorage.getItem(TOKEN_KEY) export const setToken = (token: string) => localStorage.setItem(TOKEN_KEY, token) -export const clearToken = () => localStorage.removeItem(TOKEN_KEY) +export const clearToken = () => { + localStorage.removeItem(TOKEN_KEY) + localStorage.removeItem(USER_KEY) +} export const isAuthed = () => !!getToken() + +export const setUserId = (userId: number) => localStorage.setItem(USER_KEY, String(userId)) +export const getUserId = () => Number(localStorage.getItem(USER_KEY) || 0) diff --git a/memora-web/src/views/Login.vue b/memora-web/src/views/Login.vue index 631e2bd..1fc9ab2 100644 --- a/memora-web/src/views/Login.vue +++ b/memora-web/src/views/Login.vue @@ -21,7 +21,7 @@ import { reactive, ref } from 'vue' import { ElMessage } from 'element-plus' import { useRouter } from 'vue-router' import { http } from '../services/http' -import { setToken } from '../modules/auth/auth' +import { setToken, setUserId } from '../modules/auth/auth' const router = useRouter() const loading = ref(false) @@ -38,6 +38,8 @@ const onSubmit = async () => { const token = loginRes.data?.data?.token if (token) { setToken(token) + const me = await http.get('/auth/me') + setUserId(me.data?.data?.user_id || 0) ElMessage.success('登录成功') router.push('/') return @@ -52,6 +54,8 @@ const onSubmit = async () => { const token = loginRes.data?.data?.token if (token) { setToken(token) + const me = await http.get('/auth/me') + setUserId(me.data?.data?.user_id || 0) ElMessage.success('注册并登录成功') router.push('/') } diff --git a/memora-web/src/views/Memory.vue b/memora-web/src/views/Memory.vue index e1f1b05..dbacda9 100644 --- a/memora-web/src/views/Memory.vue +++ b/memora-web/src/views/Memory.vue @@ -1,5 +1,32 @@