生产管理系统 - 系统参数配置集成于首页loading
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
'use client';
|
||||
|
||||
import React, { createContext, useContext, useState, ReactNode, useRef } from 'react';
|
||||
import { getCurrentUserInfoApiV1AuthMeGet, refreshTokenApiV1AuthRefreshPost } from '@/lib/api/sdk.gen';
|
||||
import { setAuthUser, getAuthUser, AuthUser } from '@/stores/modules/auth';
|
||||
import { getCurrentUserInfoApiV1AuthMeGet, refreshTokenApiV1AuthRefreshPost, listAdminSettingsApiV1AdminSettingsGet } from '@/lib/api/sdk.gen';
|
||||
import { setAuthUser, getAuthUser, setSettings } from '@/stores/modules/auth';
|
||||
|
||||
// Cookie 操作工具
|
||||
const setTokenCookie = (token: string) => {
|
||||
@@ -203,26 +203,47 @@ export function AuthProvider({ children }: AuthProviderProps) {
|
||||
|
||||
const userData = JSON.parse(storedUser);
|
||||
|
||||
// 使用 SDK 调用 /api/v1/auth/me 验证用户信息
|
||||
const response = await getCurrentUserInfoApiV1AuthMeGet({
|
||||
headers: {
|
||||
'Authorization': `Bearer ${userData.token}`,
|
||||
},
|
||||
});
|
||||
// 使用 Promise.all 并行发起两个请求
|
||||
const [userResponse, settingsResponse] = await Promise.all([
|
||||
// 请求1: 调用 /api/v1/auth/me 验证用户信息
|
||||
getCurrentUserInfoApiV1AuthMeGet({
|
||||
headers: {
|
||||
'Authorization': `Bearer ${userData.token}`,
|
||||
},
|
||||
}),
|
||||
// 请求2: 调用 /api/v1/admin/settings 获取设置信息
|
||||
listAdminSettingsApiV1AdminSettingsGet({
|
||||
headers: {
|
||||
'Authorization': `Bearer ${userData.token}`,
|
||||
},
|
||||
query: {
|
||||
page: 1,
|
||||
size: 100,
|
||||
order_by: '',
|
||||
sort_order: 'desc'
|
||||
}
|
||||
})
|
||||
]);
|
||||
|
||||
if (response.data) {
|
||||
if (userResponse.data) {
|
||||
// 更新用户信息(可能包含最新的权限、角色等)
|
||||
const updatedUserData = {
|
||||
...userData,
|
||||
...response.data, // 合并最新的用户信息
|
||||
...userResponse.data, // 合并最新的用户信息
|
||||
};
|
||||
setUser(updatedUserData);
|
||||
|
||||
// 存储到 Zustand store
|
||||
setAuthUser(response.data);
|
||||
console.log('✅ 用户验证成功,最新用户信息:', response.data);
|
||||
setAuthUser(userResponse.data);
|
||||
console.log('✅ 用户验证成功,最新用户信息:', userResponse.data);
|
||||
console.log('📦 从 Zustand store 取出的用户数据:', getAuthUser());
|
||||
|
||||
// 存储设置数据到 Zustand store
|
||||
if (settingsResponse && settingsResponse.data) {
|
||||
setSettings(settingsResponse.data);
|
||||
console.log('✅ 设置数据获取成功:', settingsResponse.data);
|
||||
}
|
||||
|
||||
// 验证成功后,启动 token 自动刷新定时器
|
||||
startTokenRefresh();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user