|
|
|
@ -10,7 +10,8 @@ import { store } from '/@/store';
@@ -10,7 +10,8 @@ import { store } from '/@/store';
|
|
|
|
|
import { PageEnum } from '/@/enums/pageEnum'; |
|
|
|
|
import { ACCESS_TOKEN_KEY, PERMISSIONS_KEY, REFRESH_TOKEN_KEY, ROLE_IDS_KEY, USER_INFO_KEY } from '/@/enums/cacheEnum'; |
|
|
|
|
import { getAuthCache, setAuthCache } from '/@/utils/auth'; |
|
|
|
|
import { UserVo, LoginParams } from '/@/api/platform/core/entity/user'; |
|
|
|
|
import { KiccUser } from '/@/api/common/base/entity'; |
|
|
|
|
import { LoginParams } from '/@/api/platform/core/entity/user'; |
|
|
|
|
import { logout, getUserInfo, login } from '/@/api/platform/core/controller/user'; |
|
|
|
|
import { useI18n } from '/@/hooks/web/useI18n'; |
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'; |
|
|
|
@ -27,7 +28,7 @@ import { merge } from 'lodash-es';
@@ -27,7 +28,7 @@ import { merge } from 'lodash-es';
|
|
|
|
|
import { RequestOptions } from '/#/axios'; |
|
|
|
|
|
|
|
|
|
interface UserState { |
|
|
|
|
userInfo: Nullable<UserVo>; |
|
|
|
|
userInfo: Nullable<KiccUser>; |
|
|
|
|
sessionTimeout?: boolean; |
|
|
|
|
lastUpdateTime: number; |
|
|
|
|
roleIds: string[]; |
|
|
|
@ -40,7 +41,7 @@ export const useUserStore = defineStore({
@@ -40,7 +41,7 @@ export const useUserStore = defineStore({
|
|
|
|
|
id: 'app-user', |
|
|
|
|
state: (): UserState => ({ |
|
|
|
|
// 用户信息
|
|
|
|
|
userInfo: getAuthCache<UserVo>(USER_INFO_KEY), |
|
|
|
|
userInfo: getAuthCache<KiccUser>(USER_INFO_KEY), |
|
|
|
|
// 登录是否过期记录(确保下次登陆不刷新路由直接还原)
|
|
|
|
|
sessionTimeout: false, |
|
|
|
|
// 最后一次性更新用户信息时间(用于页面刷新更新用户数据)
|
|
|
|
@ -55,7 +56,7 @@ export const useUserStore = defineStore({
@@ -55,7 +56,7 @@ export const useUserStore = defineStore({
|
|
|
|
|
refresh_token: getAuthCache<string>(REFRESH_TOKEN_KEY), |
|
|
|
|
}), |
|
|
|
|
getters: { |
|
|
|
|
getUserInfo(): UserVo { |
|
|
|
|
getUserInfo(): KiccUser { |
|
|
|
|
return this.userInfo || {}; |
|
|
|
|
}, |
|
|
|
|
getAccessToken(): string { |
|
|
|
@ -94,7 +95,7 @@ export const useUserStore = defineStore({
@@ -94,7 +95,7 @@ export const useUserStore = defineStore({
|
|
|
|
|
this.refresh_token = refreshToken; |
|
|
|
|
setAuthCache(REFRESH_TOKEN_KEY, refreshToken); |
|
|
|
|
}, |
|
|
|
|
setUserInfo(userInfo: Nullable<UserVo>) { |
|
|
|
|
setUserInfo(userInfo: Nullable<KiccUser>) { |
|
|
|
|
this.userInfo = userInfo; |
|
|
|
|
this.lastUpdateTime = new Date().getTime(); |
|
|
|
|
setAuthCache(USER_INFO_KEY, userInfo); |
|
|
|
@ -111,7 +112,7 @@ export const useUserStore = defineStore({
@@ -111,7 +112,7 @@ export const useUserStore = defineStore({
|
|
|
|
|
this.setPermissions([]); |
|
|
|
|
}, |
|
|
|
|
/** 登录 */ |
|
|
|
|
async login(params: LoginParams): Promise<UserVo | null> { |
|
|
|
|
async login(params: LoginParams): Promise<KiccUser | null> { |
|
|
|
|
try { |
|
|
|
|
const { goHome = true, clientId = '', ...loginParams } = params; |
|
|
|
|
// 处理自定义授权客户端
|
|
|
|
@ -134,7 +135,7 @@ export const useUserStore = defineStore({
@@ -134,7 +135,7 @@ export const useUserStore = defineStore({
|
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
/** 登录成功后动作 */ |
|
|
|
|
async afterLoginAction(goHome?: boolean): Promise<UserVo | null> { |
|
|
|
|
async afterLoginAction(goHome?: boolean): Promise<KiccUser | null> { |
|
|
|
|
if (!this.getAccessToken) return null; |
|
|
|
|
// 获取用户信息
|
|
|
|
|
const userInfo = await this.getUserInfoAction(); |
|
|
|
@ -157,7 +158,7 @@ export const useUserStore = defineStore({
@@ -157,7 +158,7 @@ export const useUserStore = defineStore({
|
|
|
|
|
return userInfo; |
|
|
|
|
}, |
|
|
|
|
/** 获取用户信息 */ |
|
|
|
|
async getUserInfoAction(): Promise<UserVo> { |
|
|
|
|
async getUserInfoAction(): Promise<KiccUser> { |
|
|
|
|
const { apiUrl } = useGlobSetting(); |
|
|
|
|
const { t } = useI18n(); |
|
|
|
|
try { |
|
|
|
|