refactor: 【web-ant】重构认证模块并移除未使用的组件和功能【0fed9472】
parent
c881a47ffd
commit
ea4892a5f6
|
@ -17,12 +17,6 @@ export namespace AuthApi {
|
|||
expiresTime: number;
|
||||
}
|
||||
|
||||
/** 刷新 token 返回值 */
|
||||
export interface RefreshTokenResult {
|
||||
data: string;
|
||||
status: number;
|
||||
}
|
||||
|
||||
/** 租户信息返回值 */
|
||||
export interface TenantResult {
|
||||
id: number;
|
||||
|
@ -49,14 +43,12 @@ export async function loginApi(data: AuthApi.LoginParams) {
|
|||
}
|
||||
|
||||
/** 刷新 accessToken */
|
||||
export async function refreshTokenApi() {
|
||||
// TODO @芋艿:refreshToken 传递
|
||||
return baseRequestClient.post<AuthApi.RefreshTokenResult>('/system/auth/refresh', {
|
||||
withCredentials: true,
|
||||
});
|
||||
export async function refreshTokenApi(refreshToken: string) {
|
||||
return baseRequestClient.post(`/system/auth/refresh-token?refreshToken=${refreshToken}`);
|
||||
}
|
||||
|
||||
/** 退出登录 */
|
||||
// TODO @芋艿:有问题 baseRequestClient
|
||||
export async function logoutApi() {
|
||||
return baseRequestClient.post('/system/auth/logout', {
|
||||
withCredentials: true,
|
||||
|
|
|
@ -50,9 +50,9 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) {
|
|||
*/
|
||||
async function doRefreshToken() {
|
||||
const accessStore = useAccessStore();
|
||||
debugger
|
||||
const resp = await refreshTokenApi();
|
||||
const newToken = resp.data;
|
||||
const refreshToken = accessStore.refreshToken as string;
|
||||
const resp = await refreshTokenApi(refreshToken);
|
||||
const newToken = resp?.data?.data?.accessToken;
|
||||
accessStore.setAccessToken(newToken);
|
||||
return newToken;
|
||||
}
|
||||
|
@ -68,6 +68,7 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) {
|
|||
|
||||
config.headers.Authorization = formatToken(accessStore.accessToken);
|
||||
config.headers['Accept-Language'] = preferences.app.locale;
|
||||
// 添加租户编号
|
||||
config.headers['tenant-id'] = tenantEnable ? accessStore.tenantId : undefined;
|
||||
return config;
|
||||
},
|
||||
|
@ -99,7 +100,8 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) {
|
|||
// 这里可以根据业务进行定制,你可以拿到 error 内的信息进行定制化处理,根据不同的 code 做不同的提示,而不是直接使用 message.error 提示 msg
|
||||
// 当前mock接口返回的错误字段是 error 或者 message
|
||||
const responseData = error?.response?.data ?? {};
|
||||
const errorMessage = responseData?.error ?? responseData?.message ?? '';
|
||||
const errorMessage =
|
||||
responseData?.error ?? responseData?.message ?? responseData.msg ?? '';
|
||||
// 如果没有错误信息,则会根据状态码进行提示
|
||||
message.error(errorMessage || msg);
|
||||
}),
|
||||
|
@ -113,3 +115,11 @@ export const requestClient = createRequestClient(apiURL, {
|
|||
});
|
||||
|
||||
export const baseRequestClient = new RequestClient({ baseURL: apiURL });
|
||||
baseRequestClient.addRequestInterceptor({
|
||||
fulfilled: (config) => {
|
||||
const accessStore = useAccessStore();
|
||||
// 添加租户编号
|
||||
config.headers['tenant-id'] = tenantEnable? accessStore.tenantId : undefined;
|
||||
return config;
|
||||
},
|
||||
});
|
||||
|
|
|
@ -11,6 +11,6 @@ export const overridesPreferences = defineOverridesPreferences({
|
|||
/** 后端路由模式 */
|
||||
accessMode: 'backend',
|
||||
name: import.meta.env.VITE_APP_TITLE,
|
||||
enableRefreshToken: false, // TODO @芋艿:后续跟进下
|
||||
enableRefreshToken: true
|
||||
},
|
||||
});
|
||||
|
|
|
@ -59,9 +59,9 @@ export const authenticateResponseInterceptor = ({
|
|||
}): ResponseInterceptorConfig => {
|
||||
return {
|
||||
rejected: async (error) => {
|
||||
const { config, response } = error;
|
||||
const { config, response, data: responseData } = error;
|
||||
// 如果不是 401 错误,直接抛出异常
|
||||
if (response?.status !== 401) {
|
||||
if (response?.status !== 401 && responseData.code !== 401) {
|
||||
throw error;
|
||||
}
|
||||
// 判断是否启用了 refreshToken 功能
|
||||
|
@ -131,7 +131,7 @@ export const errorMessageResponseInterceptor = (
|
|||
}
|
||||
|
||||
let errorMessage = '';
|
||||
const status = error?.response?.status;
|
||||
const status = error?.code || error?.response?.data?.code || error?.response?.status;
|
||||
|
||||
switch (status) {
|
||||
case 400: {
|
||||
|
|
Loading…
Reference in New Issue