feat: add query-login
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import { Query } from '@kevisual/query/query';
|
||||
import { getConfig } from './get-config.ts';
|
||||
import { QueryLoginNode, storage } from '@kevisual/query-login/node';
|
||||
const config = getConfig();
|
||||
export const baseURL = config?.baseURL || 'https://envision.xiongxiao.me';
|
||||
export const baseURL = config?.baseURL || 'https://kevisual.cn';
|
||||
export { storage };
|
||||
export const getBaseURL = () => {
|
||||
if (typeof config?.dev === 'undefined') {
|
||||
return baseURL;
|
||||
@@ -23,10 +25,29 @@ export const query = new Query({
|
||||
|
||||
query.beforeRequest = async (config) => {
|
||||
if (config.headers) {
|
||||
const token = await getConfig()?.token;
|
||||
const token = await storage.getItem('token');
|
||||
if (token) {
|
||||
config.headers['Authorization'] = 'Bearer ' + token;
|
||||
}
|
||||
}
|
||||
return config;
|
||||
};
|
||||
query.afterResponse = async (response, ctx) => {
|
||||
if (response.code === 401) {
|
||||
if (query.stop) {
|
||||
return {
|
||||
code: 500,
|
||||
message: '登录已过期',
|
||||
};
|
||||
}
|
||||
query.stop = true;
|
||||
const res = await queryLogin.afterCheck401ToRefreshToken(response, ctx);
|
||||
query.stop = false;
|
||||
return res;
|
||||
}
|
||||
return response as any;
|
||||
};
|
||||
export const queryLogin = new QueryLoginNode({
|
||||
query: query as any,
|
||||
onLoad: async () => {},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user