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