可信代码库-生产环境token覆盖问题解决
This commit is contained in:
@@ -9,11 +9,11 @@ export function useAccount() {
|
||||
if (!source) {
|
||||
return;
|
||||
}
|
||||
const { access_token, refresh_token, xauth_token, ...userInfo } = source;
|
||||
localStorage.setItem('access_token', access_token);
|
||||
localStorage.setItem('refresh_token', refresh_token);
|
||||
const { op_access_token, op_refresh_token, xauth_token, ...userInfo } = source;
|
||||
localStorage.setItem('op_access_token', op_access_token);
|
||||
localStorage.setItem('op_refresh_token', op_refresh_token);
|
||||
localStorage.setItem('xauth_token', xauth_token);
|
||||
localStorage.setItem('userInfo', JSON.stringify(userInfo));
|
||||
localStorage.setItem('opUserInfo', JSON.stringify(userInfo));
|
||||
if (cached) {
|
||||
saveStatus(true);
|
||||
saveAccountInfo(userInfo);
|
||||
@@ -21,10 +21,10 @@ export function useAccount() {
|
||||
};
|
||||
|
||||
const RemoveInfo = () => {
|
||||
localStorage.removeItem('access_token');
|
||||
localStorage.removeItem('refresh_token');
|
||||
localStorage.removeItem('op_access_token');
|
||||
localStorage.removeItem('op_refresh_token');
|
||||
localStorage.removeItem('xauth_token');
|
||||
localStorage.removeItem('userInfo');
|
||||
localStorage.removeItem('opUserInfo');
|
||||
localStorage.removeItem('validator_email');
|
||||
localStorage.removeItem('visited_repo_list');
|
||||
localStorage.removeItem('invite_link');
|
||||
|
||||
@@ -129,7 +129,7 @@ export function useFormInteraction(currentForm: Ref<FormListProps[]>, flag: bool
|
||||
};
|
||||
/** 第三方登录 */
|
||||
const handleAuthLogin = (type: 'csdn' | 'gitee' | 'github' | 'mobile', callback?: Function, returnUrl? :string) => {
|
||||
if (localStorage.getItem('access_token')) {
|
||||
if (localStorage.getItem('op_access_token')) {
|
||||
callback?.();
|
||||
} else {
|
||||
if (type === 'mobile') {
|
||||
|
||||
@@ -8,8 +8,8 @@ type UserInfo = {
|
||||
}
|
||||
|
||||
export const useUserInfo = (): { userInfo: UserInfo; } => {
|
||||
const userInfoStr = localStorage.getItem('userInfo');
|
||||
const userInfoStr2 = sessionStorage.getItem('userInfo');
|
||||
const userInfoStr = localStorage.getItem('opUserInfo');
|
||||
const userInfoStr2 = sessionStorage.getItem('opUserInfo');
|
||||
const userInfo: UserInfo = userInfoStr ? JSON.parse(userInfoStr) : userInfoStr2 ? JSON.parse(userInfoStr2) : {};
|
||||
return {
|
||||
userInfo
|
||||
|
||||
@@ -118,7 +118,7 @@ export function getFilePath(hash: string, filetype: string): string {
|
||||
|
||||
export function getImageUrl(iam_id?: string, fileType: string = 'png', isAvatar: boolean = true) {
|
||||
if (!iam_id) {
|
||||
const accountInfo = JSON.parse(localStorage.getItem('userInfo') || '{}');
|
||||
const accountInfo = JSON.parse(localStorage.getItem('opUserInfo') || '{}');
|
||||
iam_id = accountInfo.iam_id;
|
||||
}
|
||||
if (isAvatar) {
|
||||
|
||||
@@ -122,10 +122,10 @@ const refreshToken = async () => axios.request({
|
||||
url: baseURL + `${(import.meta as any).env.VITE_PASSPORT_PREFIX || ''}` + '/api/v1/user/token/refresh',
|
||||
method: 'post',
|
||||
data: {
|
||||
refresh_token: localStorage.getItem('refresh_token')
|
||||
op_refresh_token: localStorage.getItem('op_refresh_token')
|
||||
},
|
||||
headers: {
|
||||
Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||||
Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
|
||||
'content-type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
withCredentials: true
|
||||
@@ -135,10 +135,10 @@ const proxyService = (params: any, customConfigs?: CustomConfigs) => {
|
||||
const account = useAccountStore();
|
||||
const service = axios.create({
|
||||
baseURL: params.apiType === 'devApi' ? baseDevURL : baseURL,
|
||||
timeout: 60000,
|
||||
timeout: 30000,
|
||||
headers: {
|
||||
'DP_TOKEN': account.accountInfo.access_token,
|
||||
'DP_REFRESH_TOKEN': account.accountInfo.refresh_token,
|
||||
'DP_TOKEN': account.accountInfo.op_access_token,
|
||||
'DP_REFRESH_TOKEN': account.accountInfo.op_refresh_token,
|
||||
},
|
||||
withCredentials: true
|
||||
});
|
||||
@@ -181,10 +181,10 @@ const proxyService = (params: any, customConfigs?: CustomConfigs) => {
|
||||
config.headers['gitcode-utm-source'] = encodeURIComponent(getSignUtmSource());
|
||||
}
|
||||
|
||||
const access_token = window.localStorage.getItem('access_token');
|
||||
const op_access_token = window.localStorage.getItem('op_access_token');
|
||||
const { url } = config;
|
||||
if (access_token && !notAuthorization(url)) {
|
||||
config.headers.Authorization = `Bearer ${access_token}`;
|
||||
if (op_access_token && !notAuthorization(url)) {
|
||||
config.headers.Authorization = `Bearer ${op_access_token}`;
|
||||
}
|
||||
/** 修改用户模块前缀名称 */
|
||||
config.url = setPassportPrefix(config.url as string, config.method as string);
|
||||
@@ -213,23 +213,23 @@ const proxyService = (params: any, customConfigs?: CustomConfigs) => {
|
||||
});
|
||||
});
|
||||
}
|
||||
if (response?.status === 401 && localStorage.getItem('access_token') && !config?.url.includes('/token/refresh')) {
|
||||
if (response?.status === 401 && localStorage.getItem('op_access_token') && !config?.url.includes('/token/refresh')) {
|
||||
refreshing = true;
|
||||
try {
|
||||
const res = await refreshToken();
|
||||
refreshing = false;
|
||||
if (res.status === 200) {
|
||||
const { access_token, refresh_token } = res.data;
|
||||
localStorage.setItem('access_token', access_token);
|
||||
localStorage.setItem('refresh_token', refresh_token);
|
||||
const { op_access_token, op_refresh_token } = res.data;
|
||||
localStorage.setItem('op_access_token', op_access_token);
|
||||
localStorage.setItem('op_refresh_token', op_refresh_token);
|
||||
queue.forEach(({ config, resolve }) => {
|
||||
if (config.headers) {
|
||||
config.headers.Authorization = `Bearer ${access_token}`;
|
||||
config.headers.Authorization = `Bearer ${op_access_token}`;
|
||||
}
|
||||
resolve(axios(config));
|
||||
});
|
||||
queue.splice(0);
|
||||
config.headers.Authorization = `Bearer ${access_token}`;
|
||||
config.headers.Authorization = `Bearer ${op_access_token}`;
|
||||
return axios(config);
|
||||
} else {
|
||||
handleError({}, true);
|
||||
|
||||
@@ -36,10 +36,10 @@ export function showMessage(res: Record<string, any>, logout: boolean = false) :
|
||||
// if (!failCode.includes(res.data.error_code.toString())) {
|
||||
// message = res.data.error_message;
|
||||
// }
|
||||
emitEvent('logout', Boolean(localStorage.getItem('access_token')));
|
||||
emitEvent('logout', Boolean(localStorage.getItem('op_access_token')));
|
||||
break;
|
||||
case 403:
|
||||
if (localStorage.getItem('access_token')) {
|
||||
if (localStorage.getItem('op_access_token')) {
|
||||
emitEvent('forbiddenRefresh');
|
||||
} else {
|
||||
message = res.data.error_message;
|
||||
|
||||
Reference in New Issue
Block a user