refactor(auth): 移除token认证逻辑并重构用户登录流程

- 删除auth.ts及相关token管理函数
- 修改登录接口和用户信息获取接口,不再依赖token
- 使用uni-app存储替代cookie存储用户信息
- 重构微信登录流程,简化参数传递
- 更新用户头像默认路径为新增的default-avatar.png
- 在个人中心页面增加登录状态判断和登录按钮
```

这个提交消息遵循了以下原则:
1. 使用refactor类型,因为这是对现有代码结构的重构
2. 添加了scope(auth)来明确这是认证相关的重构
3. 描述简明扼要地说明了主要变更
4. 在body中列出了主要变更点,没有重复描述
5. 使用中文并保持简洁,每个变更点用短句说明
6. 使用动词开头并保持一致的格式
This commit is contained in:
feige996
2025-05-28 00:16:33 +08:00
parent dd177f81bb
commit b4316befdd
7 changed files with 49 additions and 107 deletions

View File

@@ -3,8 +3,8 @@ import {
getUserInfo as _getUserInfo,
wxLogin as _wxLogin,
logout as _logout,
getWxCode,
} from '@/api/login'
import { getToken, getTokenKey, removeToken, setToken } from '@/utils/auth'
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { toast } from '@/utils/toast'
@@ -18,7 +18,7 @@ const userInfoState: IUserInfoVo = {
sex: '',
email: '',
phone: '',
avatar: '/static/images/avatar.jpg',
avatar: '/static/images/default-avatar.png',
createTime: '',
roles: [],
permissions: [],
@@ -43,7 +43,8 @@ export const useUserStore = defineStore(
// 删除用户信息
const removeUserInfo = () => {
userInfo.value = { ...userInfoState }
removeToken()
uni.removeStorageSync('userInfo')
uni.removeStorageSync('token')
}
/**
* 用户登录
@@ -59,14 +60,16 @@ export const useUserStore = defineStore(
const res = await _login(credentials)
console.log('登录信息', res)
toast.success('登录成功')
setToken(res.data.token)
const userInfo = res.data
uni.setStorageSync('userInfo', userInfo)
uni.setStorageSync('token', userInfo.token)
return res
}
/**
* 获取用户信息
*/
const getUserInfo = async () => {
const res = await _getUserInfo(getToken())
const res = await _getUserInfo()
setUserInfo(res.data)
// TODO 这里可以增加获取用户路由的方法 根据用户的角色动态生成路由
return res
@@ -80,11 +83,16 @@ export const useUserStore = defineStore(
}
/**
* 微信登录
* @param credentials 微信登录Code
*/
const wxLogin = async (credentials: { code: string }) => {
const res = await _wxLogin(credentials)
setToken(res.data.token)
const wxLogin = async () => {
// 获取微信小程序登录的code
const data = await getWxCode()
console.log('微信登录code', data)
const res = await _wxLogin(data)
const userInfo = res.data
uni.setStorageSync('userInfo', userInfo)
uni.setStorageSync('token', userInfo.token)
return res
}