可信代码库-生产环境token覆盖问题解决
This commit is contained in:
9408
package-lock.json
generated
Normal file
9408
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -56,7 +56,7 @@ onMounted(() => {
|
||||
/** pc端刷新窗口 */
|
||||
toNotice();
|
||||
addEventListener('logout', (options) => {
|
||||
const token = localStorage.getItem('access_token');
|
||||
const token = localStorage.getItem('op_access_token');
|
||||
if (!status.value) {
|
||||
status.value = true;
|
||||
if (isMounted()) {
|
||||
@@ -134,7 +134,7 @@ onMounted(() => {
|
||||
});
|
||||
|
||||
watchEffect(async() => {
|
||||
if (route?.query?.isLogin && !localStorage.getItem('access_token')) {
|
||||
if (route?.query?.isLogin && !localStorage.getItem('op_access_token')) {
|
||||
if (!isMountedModal()) {
|
||||
const cache_timeStamp = localStorage.getItem('cache_timeStamp');
|
||||
const currentTimestamp = Date.now();
|
||||
|
||||
@@ -201,8 +201,8 @@ export interface userInfoType {
|
||||
mobile?: string
|
||||
nickname?: string
|
||||
username?: string
|
||||
access_token?: string
|
||||
refresh_token?: string
|
||||
op_access_token?: string
|
||||
op_refresh_token?: string
|
||||
xauth_token?: string
|
||||
[x: string]: any
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ export function getVulSuggestion(data) {
|
||||
// method: 'POST',
|
||||
// data,
|
||||
// headers: {
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
|
||||
// },
|
||||
// });
|
||||
}
|
||||
@@ -351,7 +351,7 @@ export function uploadImage(file: File) {
|
||||
data: formData,
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data',
|
||||
Authorization: 'Bearer ' + localStorage.getItem('access_token')
|
||||
Authorization: 'Bearer ' + localStorage.getItem('op_access_token')
|
||||
}
|
||||
});
|
||||
|
||||
@@ -361,7 +361,7 @@ export function uploadImage(file: File) {
|
||||
// data: formData,
|
||||
// headers: {
|
||||
// 'Content-Type': 'multipart/form-data',
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('access_token')
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('op_access_token')
|
||||
// }
|
||||
// });
|
||||
}
|
||||
@@ -464,7 +464,7 @@ export function qualityTaskOverview(data) {
|
||||
url: `/gateway/quality/task-overview/software` + `/${softwareId}`,
|
||||
method: 'GET',
|
||||
// headers: {
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
|
||||
// }
|
||||
});
|
||||
}
|
||||
@@ -475,7 +475,7 @@ export function qualityDefectPage(data) {
|
||||
url: `/gateway/quality/defect/page` + `?pageNum=${pageNum}&pageSize=${pageSize}&softwareId=${softwareId}`,
|
||||
method: 'GET',
|
||||
// headers: {
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||||
// Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
|
||||
// }
|
||||
});
|
||||
}
|
||||
@@ -486,7 +486,7 @@ export function loginAccess() {
|
||||
method: 'POST',
|
||||
data: {},
|
||||
headers: {
|
||||
Authorization: 'Bearer ' + localStorage.getItem('access_token'),
|
||||
Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -38,8 +38,8 @@ export interface LoginResType {
|
||||
mobile?: string
|
||||
nickname?: string
|
||||
username?: string
|
||||
access_token?: string
|
||||
refresh_token?: string
|
||||
op_access_token?: string
|
||||
op_refresh_token?: string
|
||||
xauth_token?: string
|
||||
}
|
||||
|
||||
|
||||
@@ -708,7 +708,7 @@ watch(
|
||||
// 移除参数
|
||||
localStorage.removeItem('loginReturnUrl');
|
||||
const handleAuthLogin = (type: 'csdn' | 'gitee' | 'github') => {
|
||||
if (localStorage.getItem('access_token')) {
|
||||
if (localStorage.getItem('op_access_token')) {
|
||||
emits('close', true);
|
||||
} else {
|
||||
if (!status.value) {
|
||||
|
||||
@@ -45,10 +45,10 @@ export const injectRouter = (router) => {
|
||||
const account = useAccountStore();
|
||||
|
||||
router.beforeEach(async (to, from) => {
|
||||
let access_token = localStorage.getItem('access_token') || '';
|
||||
let refresh_token = localStorage.getItem('refresh_token') || '';
|
||||
let op_access_token = localStorage.getItem('op_access_token') || '';
|
||||
let op_refresh_token = localStorage.getItem('op_refresh_token') || '';
|
||||
// 如果是从blog跳转过来的判断是否登陆,如果登陆则写入storage
|
||||
await account.checkIsLogin(access_token,refresh_token);
|
||||
await account.checkIsLogin(op_access_token,op_refresh_token);
|
||||
// 判断命名空间类型
|
||||
const globalStore = useGlobalInfoStore();
|
||||
globalStore.setNamespaceType(-1); // 重置namespaceType,防止非组织路由请求组织信息
|
||||
|
||||
@@ -11,8 +11,8 @@ export interface AccountInfo {
|
||||
avatar?: string;
|
||||
nickname?: string;
|
||||
username?: string;
|
||||
access_token?: string;
|
||||
refresh_token?: string;
|
||||
op_access_token?: string;
|
||||
op_refresh_token?: string;
|
||||
xauth_token?: string;
|
||||
isFollow?: boolean;
|
||||
atomgit_username?: string;
|
||||
@@ -20,26 +20,26 @@ export interface AccountInfo {
|
||||
}
|
||||
|
||||
export const useAccountStore = defineStore('accountInfo', () => {
|
||||
const cacheInfo = localStorage.getItem('userInfo');
|
||||
const isLogin = ref(Boolean(localStorage.getItem('access_token')));
|
||||
const cacheInfo = localStorage.getItem('opUserInfo');
|
||||
const isLogin = ref(Boolean(localStorage.getItem('op_access_token')));
|
||||
const userInfo = cacheInfo ? JSON.parse(cacheInfo).data : {};
|
||||
const accountInfo = reactive<AccountInfo>({
|
||||
access_token: localStorage.getItem('access_token') || '',
|
||||
refresh_token: localStorage.getItem('refresh_token') || '',
|
||||
op_access_token: localStorage.getItem('op_access_token') || '',
|
||||
op_refresh_token: localStorage.getItem('op_refresh_token') || '',
|
||||
xauth_token: localStorage.getItem('xauth_token') || '',
|
||||
...userInfo
|
||||
});
|
||||
|
||||
const refresh = () => {
|
||||
/** 重定向跳转时强刷使用 */
|
||||
const info = localStorage.getItem('userInfo');
|
||||
isLogin.value = Boolean(localStorage.getItem('access_token'));
|
||||
const info = localStorage.getItem('opUserInfo');
|
||||
isLogin.value = Boolean(localStorage.getItem('op_access_token'));
|
||||
const userData = info ? JSON.parse(info) : {};
|
||||
for (const key in userData) {
|
||||
accountInfo[key] = userData[key];
|
||||
}
|
||||
accountInfo.access_token = localStorage.getItem('access_token') || '';
|
||||
accountInfo.refresh_token = localStorage.getItem('refresh_token') || '';
|
||||
accountInfo.op_access_token = localStorage.getItem('op_access_token') || '';
|
||||
accountInfo.op_refresh_token = localStorage.getItem('op_refresh_token') || '';
|
||||
accountInfo.xauth_token = localStorage.getItem('xauth_token') || '';
|
||||
};
|
||||
|
||||
@@ -59,38 +59,39 @@ export const useAccountStore = defineStore('accountInfo', () => {
|
||||
}
|
||||
};
|
||||
// 可能有从博客跳转过来的,通过接口判断是否登陆
|
||||
const checkIsLogin = async (access_token: string, refresh_token: string) => {
|
||||
const checkIsLogin = async (op_access_token: string, op_refresh_token: string) => {
|
||||
// const { data, error } = await getUserToken();
|
||||
// if (data?.data) {
|
||||
// const { access_token, refresh_token } = data.data;
|
||||
// const { op_access_token, op_refresh_token } = data.data;
|
||||
|
||||
if(!access_token|| !refresh_token) {
|
||||
if(!op_access_token|| !op_refresh_token) {
|
||||
return
|
||||
}
|
||||
localStorage.setItem('access_token', access_token);
|
||||
localStorage.setItem('refresh_token', refresh_token);
|
||||
localStorage.setItem('op_access_token', op_access_token);
|
||||
localStorage.setItem('op_refresh_token', op_refresh_token);
|
||||
saveStatus(true);
|
||||
saveAccountInfo({
|
||||
access_token: localStorage.getItem('access_token') || '',
|
||||
refresh_token: localStorage.getItem('refresh_token') || ''
|
||||
op_access_token: localStorage.getItem('op_access_token') || '',
|
||||
op_refresh_token: localStorage.getItem('op_refresh_token') || ''
|
||||
});
|
||||
debugger
|
||||
const userRes = await getUserInfo();
|
||||
if (userRes.data?.data && userRes.data?.data?.code===200) {
|
||||
localStorage.setItem('userInfo', JSON.stringify(userRes.data?.data));
|
||||
localStorage.setItem('opUserInfo', JSON.stringify(userRes.data?.data));
|
||||
saveAccountInfo({
|
||||
...userRes.data?.data
|
||||
});
|
||||
// }
|
||||
return true;
|
||||
} else {
|
||||
localStorage.removeItem('access_token');
|
||||
localStorage.removeItem('refresh_token');
|
||||
localStorage.removeItem('userInfo');
|
||||
localStorage.removeItem('op_access_token');
|
||||
localStorage.removeItem('op_refresh_token');
|
||||
localStorage.removeItem('opUserInfo');
|
||||
saveAccountInfo({});
|
||||
return false;
|
||||
}
|
||||
// localStorage.removeItem('access_token');
|
||||
// localStorage.removeItem('refresh_token');
|
||||
// localStorage.removeItem('op_access_token');
|
||||
// localStorage.removeItem('op_refresh_token');
|
||||
// localStorage.removeItem('userInfo');
|
||||
// saveAccountInfo({});
|
||||
// return false;
|
||||
@@ -111,7 +112,7 @@ export const useAccountStore = defineStore('accountInfo', () => {
|
||||
});
|
||||
|
||||
export const otherAccountStore = defineStore('otherInfo', () => {
|
||||
const isLogin = ref(Boolean(localStorage.getItem('access_token')));
|
||||
const isLogin = ref(Boolean(localStorage.getItem('op_access_token')));
|
||||
const userInfo = {};
|
||||
const accountInfo = reactive<AccountInfo>({
|
||||
...userInfo
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<span>预警公告</span>
|
||||
</div>
|
||||
|
||||
<!-- <a v-if="accountInfo.access_token" class="devui-link" @click="checkMore"
|
||||
<!-- <a v-if="accountInfo.op_access_token" class="devui-link" @click="checkMore"
|
||||
>更多 <i class="icon icon-chevron-right-2"></i>
|
||||
</a>
|
||||
<span v-else class="text-blue-500">查看更多,请先登录</span> -->
|
||||
|
||||
@@ -83,10 +83,10 @@ const handleDelete = async (row) => {
|
||||
type: 'success',
|
||||
message: '成功删除'
|
||||
});
|
||||
let access_token = localStorage.getItem('access_token') || '';
|
||||
let refresh_token = localStorage.getItem('refresh_token') || '';
|
||||
let op_access_token = localStorage.getItem('op_access_token') || '';
|
||||
let op_refresh_token = localStorage.getItem('op_refresh_token') || '';
|
||||
// 如果是从blog跳转过来的判断是否登陆,如果登陆则写入storage
|
||||
await account.checkIsLogin(access_token,refresh_token);
|
||||
await account.checkIsLogin(op_access_token,op_refresh_token);
|
||||
queryInviteListData();
|
||||
} else {
|
||||
Message({
|
||||
|
||||
@@ -77,10 +77,10 @@ const handleAccept = async (row, type) => {
|
||||
groupId: row.groupId,
|
||||
status: type
|
||||
});
|
||||
let access_token = localStorage.getItem('access_token') || '';
|
||||
let refresh_token = localStorage.getItem('refresh_token') || '';
|
||||
let op_access_token = localStorage.getItem('op_access_token') || '';
|
||||
let op_refresh_token = localStorage.getItem('op_refresh_token') || '';
|
||||
// 如果是从blog跳转过来的判断是否登陆,如果登陆则写入storage
|
||||
await account.checkIsLogin(access_token,refresh_token);
|
||||
await account.checkIsLogin(op_access_token,op_refresh_token);
|
||||
if (data?.data?.data?.data) {
|
||||
if(type===1) {
|
||||
Message({
|
||||
|
||||
@@ -84,7 +84,7 @@ const getInfo = async () => {
|
||||
forms.userExt.emailAlertSwitch = user.userExt?.emailAlertSwitch || false;
|
||||
|
||||
if (userRes.data?.data) {
|
||||
localStorage.setItem('userInfo', JSON.stringify(userRes.data?.data));
|
||||
localStorage.setItem('opUserInfo', JSON.stringify(userRes.data?.data));
|
||||
useAccountStore().saveAccountInfo({
|
||||
...userRes.data?.data
|
||||
});
|
||||
|
||||
@@ -76,7 +76,9 @@ const goToGovernCenter = async () => {
|
||||
const res = await fetchCheckAuthenticate({});
|
||||
if(res.data.code!==200) return
|
||||
if (res.data.data) {
|
||||
window.location.href = VITE_GOVERNANCE_HOST;
|
||||
// 直接使用 window.open
|
||||
window.open(VITE_GOVERNANCE_HOST, '_blank');
|
||||
// window.location.href = VITE_GOVERNANCE_HOST;
|
||||
} else {
|
||||
Message.warning('请联系平台管理员,开通账号权限');
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ onMounted(async() => {
|
||||
const signup_type = localStorage.getItem('cache_timeStamp') && localStorage.getItem('utm_source') ? '博客加速' : (sessionStorage.getItem('loginType') || '');
|
||||
const res = await getBindUserInfo(bindType as unknown as any, code as string, bindState as string, signup_type as string) as any;
|
||||
if (!res.error) {
|
||||
if (localStorage.getItem('access_token') && fromAtomGit) {
|
||||
if (localStorage.getItem('op_access_token') && fromAtomGit) {
|
||||
emitEvents('success', '', automgitPath);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ const login = () => {
|
||||
redirectUrl = route?.query?.redirect.charAt(0) === '/' ? `${decodeURIComponent(route?.query?.redirect)}` : `/${decodeURIComponent(route?.query?.redirect)}`;
|
||||
}
|
||||
|
||||
if (localStorage.getItem('access_token')) {
|
||||
if (localStorage.getItem('op_access_token')) {
|
||||
router.replace(redirectUrl || '/');
|
||||
return;
|
||||
} else {
|
||||
|
||||
@@ -181,7 +181,7 @@ const followLoading = ref(false);
|
||||
const followList = ref([]);
|
||||
const userList = ref<MemberItemData[]>([]);
|
||||
const getUserInfo = (source: RepoGroupUser, content: RepoGroupUser[]) => {
|
||||
const userInfo = JSON.parse(localStorage.getItem('userInfo') as string);
|
||||
const userInfo = JSON.parse(localStorage.getItem('opUserInfo') as string);
|
||||
const adminList = content?.filter(item => item.access_level.toString() === '50') || [];
|
||||
return {
|
||||
imageSrc: source.avatar || source.avatar_url,
|
||||
|
||||
@@ -216,7 +216,7 @@ export const getOrgInfo = () => {
|
||||
|
||||
// 获取用户是否可以创建组织 checkUserCreateOrg
|
||||
const getUserCreateOrg = async(user?: any) => {
|
||||
const token = localStorage.getItem('access_token');
|
||||
const token = localStorage.getItem('op_access_token');
|
||||
if (!token) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@ export const useUserInfo = (): { isSelf: boolean; userInfo: UserInfo; namespace:
|
||||
const route = useRoute();
|
||||
const params = route?.params || {};
|
||||
const namespace = Array.isArray(params.namespace) ? params.namespace.join('/') : params.namespace;
|
||||
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) : {};
|
||||
const isSelf = userInfo.username?.toLowerCase() === namespace?.toLowerCase();
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user