feat: 添加用户注册功能,新增数据工厂专用鉴权接口
parent
110b621375
commit
c0f6f75e49
@ -1,118 +1,131 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, computed } from 'vue'
|
||||
import { login as loginApi, logout as logoutApi, getUserInfo, exchangeDifyToken, LoginParams, UserInfo } from '@/api/auth'
|
||||
import { removeDifyToken } from '@/micro-app/agents/request/service'
|
||||
import {defineStore} from 'pinia'
|
||||
import {ref, computed} from 'vue'
|
||||
import {getUserInfo, exchangeDifyToken, UserInfo} from '@/api/auth'
|
||||
import {
|
||||
login as loginApi,
|
||||
logout as logoutApi,
|
||||
register as registerApi,
|
||||
LoginParams,
|
||||
RegisterParams
|
||||
} from '@/api/user-auth'
|
||||
import {removeDifyToken} from '@/micro-app/agents/request/service'
|
||||
|
||||
export const useUserStore = defineStore('user', () => {
|
||||
const token = ref(localStorage.getItem('Access-Token') || '')
|
||||
const refreshToken = ref(localStorage.getItem('Refresh-Token') || '')
|
||||
const userInfo = ref<UserInfo>({
|
||||
userId: '',
|
||||
userAccount: '',
|
||||
userFullName: '',
|
||||
userImageUrl: '',
|
||||
deptId: '',
|
||||
deptName: '',
|
||||
orgId: '',
|
||||
orgName: '',
|
||||
roles: []
|
||||
})
|
||||
const token = ref(localStorage.getItem('Access-Token') || '')
|
||||
const refreshToken = ref(localStorage.getItem('Refresh-Token') || '')
|
||||
const userInfo = ref<UserInfo>({
|
||||
userId: '',
|
||||
userAccount: '',
|
||||
userFullName: '',
|
||||
userImageUrl: '',
|
||||
deptId: '',
|
||||
deptName: '',
|
||||
orgId: '',
|
||||
orgName: '',
|
||||
roles: []
|
||||
})
|
||||
|
||||
// 是否已登录
|
||||
const isLoggedIn = computed(() => !!token.value)
|
||||
// 是否已登录
|
||||
const isLoggedIn = computed(() => !!token.value)
|
||||
|
||||
// 设置 token
|
||||
const setToken = (accessToken: string, refToken?: string) => {
|
||||
token.value = accessToken
|
||||
localStorage.setItem('Access-Token', accessToken)
|
||||
if (refToken) {
|
||||
refreshToken.value = refToken
|
||||
localStorage.setItem('Refresh-Token', refToken)
|
||||
// 设置 token
|
||||
const setToken = (accessToken: string, refToken?: string) => {
|
||||
token.value = accessToken
|
||||
localStorage.setItem('Access-Token', accessToken)
|
||||
if (refToken) {
|
||||
refreshToken.value = refToken
|
||||
localStorage.setItem('Refresh-Token', refToken)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置用户信息
|
||||
const setUserInfo = (info: UserInfo) => {
|
||||
userInfo.value = info
|
||||
}
|
||||
// 设置用户信息
|
||||
const setUserInfo = (info: UserInfo) => {
|
||||
userInfo.value = info
|
||||
}
|
||||
|
||||
// 登录
|
||||
const login = async (params: LoginParams) => {
|
||||
try {
|
||||
const res = await loginApi(params)
|
||||
setToken(res.access_token)
|
||||
|
||||
// 登录
|
||||
const login = async (params: LoginParams) => {
|
||||
try {
|
||||
const res = await loginApi(params)
|
||||
setToken(res.access_token, res.refresh_token)
|
||||
// 获取用户信息
|
||||
// await fetchUserInfo()
|
||||
|
||||
// 获取用户信息
|
||||
await fetchUserInfo()
|
||||
// 交换 dify token (用于 agents 模块)
|
||||
try {
|
||||
const difyTokenRes = await exchangeDifyToken()
|
||||
localStorage.setItem('dify_access_token', difyTokenRes.access_token)
|
||||
localStorage.setItem('dify_refresh_token', difyTokenRes.refresh_token)
|
||||
} catch (e) {
|
||||
console.warn('交换 dify token 失败', e)
|
||||
}
|
||||
|
||||
// 交换 dify token (用于 agents 模块)
|
||||
try {
|
||||
const difyTokenRes = await exchangeDifyToken()
|
||||
localStorage.setItem('dify_access_token', difyTokenRes.access_token)
|
||||
localStorage.setItem('dify_refresh_token', difyTokenRes.refresh_token)
|
||||
} catch (e) {
|
||||
console.warn('交换 dify token 失败', e)
|
||||
}
|
||||
return res
|
||||
} catch (error) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
return res
|
||||
} catch (error) {
|
||||
throw error
|
||||
// 注册
|
||||
const register = async (params: RegisterParams) => {
|
||||
await registerApi(params)
|
||||
}
|
||||
}
|
||||
|
||||
// 获取用户信息
|
||||
const fetchUserInfo = async () => {
|
||||
try {
|
||||
const info = await getUserInfo()
|
||||
setUserInfo(info)
|
||||
return info
|
||||
} catch (error) {
|
||||
throw error
|
||||
// 获取用户信息
|
||||
const fetchUserInfo = async () => {
|
||||
try {
|
||||
const info = await getUserInfo()
|
||||
setUserInfo(info)
|
||||
return info
|
||||
} catch (error) {
|
||||
throw error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 登出
|
||||
const logout = async () => {
|
||||
try {
|
||||
await logoutApi()
|
||||
} catch (e) {
|
||||
console.warn('登出接口调用失败', e)
|
||||
} finally {
|
||||
clearAuth()
|
||||
// 登出
|
||||
const logout = async () => {
|
||||
try {
|
||||
await logoutApi()
|
||||
} catch (e) {
|
||||
console.warn('登出接口调用失败', e)
|
||||
} finally {
|
||||
clearAuth()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 清除认证信息
|
||||
const clearAuth = () => {
|
||||
token.value = ''
|
||||
refreshToken.value = ''
|
||||
userInfo.value = {
|
||||
userId: '',
|
||||
userAccount: '',
|
||||
userFullName: '',
|
||||
userImageUrl: '',
|
||||
deptId: '',
|
||||
deptName: '',
|
||||
orgId: '',
|
||||
orgName: '',
|
||||
roles: []
|
||||
// 清除认证信息
|
||||
const clearAuth = () => {
|
||||
token.value = ''
|
||||
refreshToken.value = ''
|
||||
userInfo.value = {
|
||||
userId: '',
|
||||
userAccount: '',
|
||||
userFullName: '',
|
||||
userImageUrl: '',
|
||||
deptId: '',
|
||||
deptName: '',
|
||||
orgId: '',
|
||||
orgName: '',
|
||||
roles: []
|
||||
}
|
||||
localStorage.removeItem('Access-Token')
|
||||
localStorage.removeItem('Refresh-Token')
|
||||
// 清除 dify token
|
||||
removeDifyToken()
|
||||
}
|
||||
localStorage.removeItem('Access-Token')
|
||||
localStorage.removeItem('Refresh-Token')
|
||||
// 清除 dify token
|
||||
removeDifyToken()
|
||||
}
|
||||
|
||||
return {
|
||||
token,
|
||||
refreshToken,
|
||||
userInfo,
|
||||
isLoggedIn,
|
||||
setToken,
|
||||
setUserInfo,
|
||||
login,
|
||||
logout,
|
||||
fetchUserInfo,
|
||||
clearAuth
|
||||
}
|
||||
return {
|
||||
token,
|
||||
refreshToken,
|
||||
userInfo,
|
||||
isLoggedIn,
|
||||
setToken,
|
||||
setUserInfo,
|
||||
login,
|
||||
register,
|
||||
logout,
|
||||
fetchUserInfo,
|
||||
clearAuth
|
||||
}
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue