From d8636acc9888dc438bcd244602e0cbb763d1486a Mon Sep 17 00:00:00 2001 From: psnci6hgk <1747918662@qq.com> Date: Wed, 17 Sep 2025 17:04:41 +0800 Subject: [PATCH] =?UTF-8?q?0.1=20=E8=A7=A3=E5=86=B3=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E4=BF=A1=E6=81=AF=E5=8C=B9=E9=85=8D=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/stores/userStore.js | 98 ++++++++----------- 1 file changed, 40 insertions(+), 58 deletions(-) diff --git a/src/oc-community-frontend/src/stores/userStore.js b/src/oc-community-frontend/src/stores/userStore.js index 3c65036..77dbd89 100644 --- a/src/oc-community-frontend/src/stores/userStore.js +++ b/src/oc-community-frontend/src/stores/userStore.js @@ -77,12 +77,7 @@ const saveUserToStorage = (userData) => { // 清除用户数据 const clearUserData = () => { - // 清除当前用户的独立存储 - if (userInfo.value.username) { - const userInfoKey = `userInfo_${userInfo.value.username}` - localStorage.removeItem(userInfoKey) - } - // 清除通用存储(兼容旧版本) + // 只清除通用存储(兼容旧版本),不删除用户详细信息 localStorage.removeItem('userInfo') localStorage.removeItem('userToken') userInfo.value = { @@ -106,22 +101,26 @@ const login = (loginData) => { // 首先检查用户是否已注册 const userRegistryKey = `userRegistry_${loginData.username}` const existingRegistry = localStorage.getItem(userRegistryKey) - - if (!existingRegistry) { reject({ success: false, message: '用户不存在,请先注册' }) return } - + // 校验密码 + let registryObj = null + try { + registryObj = JSON.parse(existingRegistry) + } catch (e) { + reject({ success: false, message: '用户注册信息损坏,请重新注册' }) + return + } + if (!registryObj.password || registryObj.password !== loginData.password) { + reject({ success: false, message: '密码错误' }) + return + } // 优先从用户特定的存储中加载用户数据 const userInfoKey = `userInfo_${loginData.username}` let storedUser = localStorage.getItem(userInfoKey) - let userData - - console.log('登录调试 - 用户信息键:', userInfoKey) - console.log('登录调试 - 用户信息数据:', storedUser) - console.log('登录调试 - 所有用户信息键:', Object.keys(localStorage).filter(key => key.startsWith('userInfo_'))) - + let userData = null; if (storedUser) { try { const existingUser = JSON.parse(storedUser) @@ -130,52 +129,34 @@ const login = (loginData) => { isLoggedIn: true } } catch (error) { - // 如果解析失败,尝试从通用存储加载 - storedUser = localStorage.getItem('userInfo') - if (storedUser) { - try { - const existingUser = JSON.parse(storedUser) - if (existingUser.username === loginData.username) { - userData = { - ...existingUser, - isLoggedIn: true - } - } else { - reject({ success: false, message: '用户数据不匹配,请重新注册' }) - return - } - } catch (error2) { - reject({ success: false, message: '用户数据损坏,请重新注册' }) - return - } - } else { - reject({ success: false, message: '用户数据不存在,请重新注册' }) - return + // 解析失败,自动用注册信息生成默认用户信息 + userData = { + username: registryObj.username, + nickname: registryObj.username, + avatar: 'https://avatars.githubusercontent.com/u/9919?v=4', + birthday: '2000-01-01', + occupation: '未知', + hobbies: 'ta一点也没透露', + bio: '这是一个新用户', + isLoggedIn: true } + // 自动修复本地存储 + localStorage.setItem(userInfoKey, JSON.stringify(userData)) } } else { - // 没有用户特定数据,尝试从通用存储加载 - storedUser = localStorage.getItem('userInfo') - if (storedUser) { - try { - const existingUser = JSON.parse(storedUser) - if (existingUser.username === loginData.username) { - userData = { - ...existingUser, - isLoggedIn: true - } - } else { - reject({ success: false, message: '用户数据不匹配,请重新注册' }) - return - } - } catch (error) { - reject({ success: false, message: '用户数据损坏,请重新注册' }) - return - } - } else { - reject({ success: false, message: '用户数据不存在,请重新注册' }) - return + // userInfo_用户名 丢失,自动用注册信息生成默认用户信息 + userData = { + username: registryObj.username, + nickname: registryObj.username, + avatar: 'https://avatars.githubusercontent.com/u/9919?v=4', + birthday: '2000-01-01', + occupation: '未知', + hobbies: 'ta一点也没透露', + bio: '这是一个新用户', + isLoggedIn: true } + // 自动修复本地存储 + localStorage.setItem(userInfoKey, JSON.stringify(userData)) } userInfo.value = userData @@ -220,9 +201,10 @@ const register = (registerData) => { isLoggedIn: true } - // 保存用户注册记录 + // 保存用户注册记录(包含密码) localStorage.setItem(userRegistryKey, JSON.stringify({ username: registerData.username, + password: registerData.password, registeredAt: Date.now() }))