可信代码库-生产环境token覆盖问题解决

This commit is contained in:
付民康
2025-07-17 11:02:19 +08:00
parent b8743716b5
commit 3a9fbbf5cc
24 changed files with 9493 additions and 82 deletions

9408
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -56,7 +56,7 @@ onMounted(() => {
/** pc端刷新窗口 */ /** pc端刷新窗口 */
toNotice(); toNotice();
addEventListener('logout', (options) => { addEventListener('logout', (options) => {
const token = localStorage.getItem('access_token'); const token = localStorage.getItem('op_access_token');
if (!status.value) { if (!status.value) {
status.value = true; status.value = true;
if (isMounted()) { if (isMounted()) {
@@ -134,7 +134,7 @@ onMounted(() => {
}); });
watchEffect(async() => { watchEffect(async() => {
if (route?.query?.isLogin && !localStorage.getItem('access_token')) { if (route?.query?.isLogin && !localStorage.getItem('op_access_token')) {
if (!isMountedModal()) { if (!isMountedModal()) {
const cache_timeStamp = localStorage.getItem('cache_timeStamp'); const cache_timeStamp = localStorage.getItem('cache_timeStamp');
const currentTimestamp = Date.now(); const currentTimestamp = Date.now();

View File

@@ -201,8 +201,8 @@ export interface userInfoType {
mobile?: string mobile?: string
nickname?: string nickname?: string
username?: string username?: string
access_token?: string op_access_token?: string
refresh_token?: string op_refresh_token?: string
xauth_token?: string xauth_token?: string
[x: string]: any [x: string]: any
} }

View File

@@ -279,7 +279,7 @@ export function getVulSuggestion(data) {
// method: 'POST', // method: 'POST',
// data, // data,
// headers: { // 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, data: formData,
headers: { headers: {
'Content-Type': 'multipart/form-data', '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, // data: formData,
// headers: { // headers: {
// 'Content-Type': 'multipart/form-data', // '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}`, url: `/gateway/quality/task-overview/software` + `/${softwareId}`,
method: 'GET', method: 'GET',
// headers: { // 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}`, url: `/gateway/quality/defect/page` + `?pageNum=${pageNum}&pageSize=${pageSize}&softwareId=${softwareId}`,
method: 'GET', method: 'GET',
// headers: { // headers: {
// Authorization: 'Bearer ' + localStorage.getItem('access_token'), // Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
// } // }
}); });
} }
@@ -486,7 +486,7 @@ export function loginAccess() {
method: 'POST', method: 'POST',
data: {}, data: {},
headers: { headers: {
Authorization: 'Bearer ' + localStorage.getItem('access_token'), Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
} }
}); });
} }

View File

@@ -38,8 +38,8 @@ export interface LoginResType {
mobile?: string mobile?: string
nickname?: string nickname?: string
username?: string username?: string
access_token?: string op_access_token?: string
refresh_token?: string op_refresh_token?: string
xauth_token?: string xauth_token?: string
} }

View File

@@ -708,7 +708,7 @@ watch(
// 移除参数 // 移除参数
localStorage.removeItem('loginReturnUrl'); localStorage.removeItem('loginReturnUrl');
const handleAuthLogin = (type: 'csdn' | 'gitee' | 'github') => { const handleAuthLogin = (type: 'csdn' | 'gitee' | 'github') => {
if (localStorage.getItem('access_token')) { if (localStorage.getItem('op_access_token')) {
emits('close', true); emits('close', true);
} else { } else {
if (!status.value) { if (!status.value) {

View File

@@ -45,10 +45,10 @@ export const injectRouter = (router) => {
const account = useAccountStore(); const account = useAccountStore();
router.beforeEach(async (to, from) => { router.beforeEach(async (to, from) => {
let access_token = localStorage.getItem('access_token') || ''; let op_access_token = localStorage.getItem('op_access_token') || '';
let refresh_token = localStorage.getItem('refresh_token') || ''; let op_refresh_token = localStorage.getItem('op_refresh_token') || '';
// 如果是从blog跳转过来的判断是否登陆如果登陆则写入storage // 如果是从blog跳转过来的判断是否登陆如果登陆则写入storage
await account.checkIsLogin(access_token,refresh_token); await account.checkIsLogin(op_access_token,op_refresh_token);
// 判断命名空间类型 // 判断命名空间类型
const globalStore = useGlobalInfoStore(); const globalStore = useGlobalInfoStore();
globalStore.setNamespaceType(-1); // 重置namespaceType防止非组织路由请求组织信息 globalStore.setNamespaceType(-1); // 重置namespaceType防止非组织路由请求组织信息

View File

@@ -11,8 +11,8 @@ export interface AccountInfo {
avatar?: string; avatar?: string;
nickname?: string; nickname?: string;
username?: string; username?: string;
access_token?: string; op_access_token?: string;
refresh_token?: string; op_refresh_token?: string;
xauth_token?: string; xauth_token?: string;
isFollow?: boolean; isFollow?: boolean;
atomgit_username?: string; atomgit_username?: string;
@@ -20,26 +20,26 @@ export interface AccountInfo {
} }
export const useAccountStore = defineStore('accountInfo', () => { export const useAccountStore = defineStore('accountInfo', () => {
const cacheInfo = localStorage.getItem('userInfo'); const cacheInfo = localStorage.getItem('opUserInfo');
const isLogin = ref(Boolean(localStorage.getItem('access_token'))); const isLogin = ref(Boolean(localStorage.getItem('op_access_token')));
const userInfo = cacheInfo ? JSON.parse(cacheInfo).data : {}; const userInfo = cacheInfo ? JSON.parse(cacheInfo).data : {};
const accountInfo = reactive<AccountInfo>({ const accountInfo = reactive<AccountInfo>({
access_token: localStorage.getItem('access_token') || '', op_access_token: localStorage.getItem('op_access_token') || '',
refresh_token: localStorage.getItem('refresh_token') || '', op_refresh_token: localStorage.getItem('op_refresh_token') || '',
xauth_token: localStorage.getItem('xauth_token') || '', xauth_token: localStorage.getItem('xauth_token') || '',
...userInfo ...userInfo
}); });
const refresh = () => { const refresh = () => {
/** 重定向跳转时强刷使用 */ /** 重定向跳转时强刷使用 */
const info = localStorage.getItem('userInfo'); const info = localStorage.getItem('opUserInfo');
isLogin.value = Boolean(localStorage.getItem('access_token')); isLogin.value = Boolean(localStorage.getItem('op_access_token'));
const userData = info ? JSON.parse(info) : {}; const userData = info ? JSON.parse(info) : {};
for (const key in userData) { for (const key in userData) {
accountInfo[key] = userData[key]; accountInfo[key] = userData[key];
} }
accountInfo.access_token = localStorage.getItem('access_token') || ''; accountInfo.op_access_token = localStorage.getItem('op_access_token') || '';
accountInfo.refresh_token = localStorage.getItem('refresh_token') || ''; accountInfo.op_refresh_token = localStorage.getItem('op_refresh_token') || '';
accountInfo.xauth_token = localStorage.getItem('xauth_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(); // const { data, error } = await getUserToken();
// if (data?.data) { // 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 return
} }
localStorage.setItem('access_token', access_token); localStorage.setItem('op_access_token', op_access_token);
localStorage.setItem('refresh_token', refresh_token); localStorage.setItem('op_refresh_token', op_refresh_token);
saveStatus(true); saveStatus(true);
saveAccountInfo({ saveAccountInfo({
access_token: localStorage.getItem('access_token') || '', op_access_token: localStorage.getItem('op_access_token') || '',
refresh_token: localStorage.getItem('refresh_token') || '' op_refresh_token: localStorage.getItem('op_refresh_token') || ''
}); });
debugger
const userRes = await getUserInfo(); const userRes = await getUserInfo();
if (userRes.data?.data && userRes.data?.data?.code===200) { 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({ saveAccountInfo({
...userRes.data?.data ...userRes.data?.data
}); });
// } // }
return true; return true;
} else { } else {
localStorage.removeItem('access_token'); localStorage.removeItem('op_access_token');
localStorage.removeItem('refresh_token'); localStorage.removeItem('op_refresh_token');
localStorage.removeItem('userInfo'); localStorage.removeItem('opUserInfo');
saveAccountInfo({}); saveAccountInfo({});
return false; return false;
} }
// localStorage.removeItem('access_token'); // localStorage.removeItem('op_access_token');
// localStorage.removeItem('refresh_token'); // localStorage.removeItem('op_refresh_token');
// localStorage.removeItem('userInfo'); // localStorage.removeItem('userInfo');
// saveAccountInfo({}); // saveAccountInfo({});
// return false; // return false;
@@ -111,7 +112,7 @@ export const useAccountStore = defineStore('accountInfo', () => {
}); });
export const otherAccountStore = defineStore('otherInfo', () => { 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 userInfo = {};
const accountInfo = reactive<AccountInfo>({ const accountInfo = reactive<AccountInfo>({
...userInfo ...userInfo

View File

@@ -9,11 +9,11 @@ export function useAccount() {
if (!source) { if (!source) {
return; return;
} }
const { access_token, refresh_token, xauth_token, ...userInfo } = source; const { op_access_token, op_refresh_token, xauth_token, ...userInfo } = source;
localStorage.setItem('access_token', access_token); localStorage.setItem('op_access_token', op_access_token);
localStorage.setItem('refresh_token', refresh_token); localStorage.setItem('op_refresh_token', op_refresh_token);
localStorage.setItem('xauth_token', xauth_token); localStorage.setItem('xauth_token', xauth_token);
localStorage.setItem('userInfo', JSON.stringify(userInfo)); localStorage.setItem('opUserInfo', JSON.stringify(userInfo));
if (cached) { if (cached) {
saveStatus(true); saveStatus(true);
saveAccountInfo(userInfo); saveAccountInfo(userInfo);
@@ -21,10 +21,10 @@ export function useAccount() {
}; };
const RemoveInfo = () => { const RemoveInfo = () => {
localStorage.removeItem('access_token'); localStorage.removeItem('op_access_token');
localStorage.removeItem('refresh_token'); localStorage.removeItem('op_refresh_token');
localStorage.removeItem('xauth_token'); localStorage.removeItem('xauth_token');
localStorage.removeItem('userInfo'); localStorage.removeItem('opUserInfo');
localStorage.removeItem('validator_email'); localStorage.removeItem('validator_email');
localStorage.removeItem('visited_repo_list'); localStorage.removeItem('visited_repo_list');
localStorage.removeItem('invite_link'); localStorage.removeItem('invite_link');

View File

@@ -129,7 +129,7 @@ export function useFormInteraction(currentForm: Ref<FormListProps[]>, flag: bool
}; };
/** 第三方登录 */ /** 第三方登录 */
const handleAuthLogin = (type: 'csdn' | 'gitee' | 'github' | 'mobile', callback?: Function, returnUrl? :string) => { const handleAuthLogin = (type: 'csdn' | 'gitee' | 'github' | 'mobile', callback?: Function, returnUrl? :string) => {
if (localStorage.getItem('access_token')) { if (localStorage.getItem('op_access_token')) {
callback?.(); callback?.();
} else { } else {
if (type === 'mobile') { if (type === 'mobile') {

View File

@@ -8,8 +8,8 @@ type UserInfo = {
} }
export const useUserInfo = (): { userInfo: UserInfo; } => { export const useUserInfo = (): { userInfo: UserInfo; } => {
const userInfoStr = localStorage.getItem('userInfo'); const userInfoStr = localStorage.getItem('opUserInfo');
const userInfoStr2 = sessionStorage.getItem('userInfo'); const userInfoStr2 = sessionStorage.getItem('opUserInfo');
const userInfo: UserInfo = userInfoStr ? JSON.parse(userInfoStr) : userInfoStr2 ? JSON.parse(userInfoStr2) : {}; const userInfo: UserInfo = userInfoStr ? JSON.parse(userInfoStr) : userInfoStr2 ? JSON.parse(userInfoStr2) : {};
return { return {
userInfo userInfo

View File

@@ -118,7 +118,7 @@ export function getFilePath(hash: string, filetype: string): string {
export function getImageUrl(iam_id?: string, fileType: string = 'png', isAvatar: boolean = true) { export function getImageUrl(iam_id?: string, fileType: string = 'png', isAvatar: boolean = true) {
if (!iam_id) { if (!iam_id) {
const accountInfo = JSON.parse(localStorage.getItem('userInfo') || '{}'); const accountInfo = JSON.parse(localStorage.getItem('opUserInfo') || '{}');
iam_id = accountInfo.iam_id; iam_id = accountInfo.iam_id;
} }
if (isAvatar) { if (isAvatar) {

View File

@@ -122,10 +122,10 @@ const refreshToken = async () => axios.request({
url: baseURL + `${(import.meta as any).env.VITE_PASSPORT_PREFIX || ''}` + '/api/v1/user/token/refresh', url: baseURL + `${(import.meta as any).env.VITE_PASSPORT_PREFIX || ''}` + '/api/v1/user/token/refresh',
method: 'post', method: 'post',
data: { data: {
refresh_token: localStorage.getItem('refresh_token') op_refresh_token: localStorage.getItem('op_refresh_token')
}, },
headers: { headers: {
Authorization: 'Bearer ' + localStorage.getItem('access_token'), Authorization: 'Bearer ' + localStorage.getItem('op_access_token'),
'content-type': 'application/x-www-form-urlencoded' 'content-type': 'application/x-www-form-urlencoded'
}, },
withCredentials: true withCredentials: true
@@ -135,10 +135,10 @@ const proxyService = (params: any, customConfigs?: CustomConfigs) => {
const account = useAccountStore(); const account = useAccountStore();
const service = axios.create({ const service = axios.create({
baseURL: params.apiType === 'devApi' ? baseDevURL : baseURL, baseURL: params.apiType === 'devApi' ? baseDevURL : baseURL,
timeout: 60000, timeout: 30000,
headers: { headers: {
'DP_TOKEN': account.accountInfo.access_token, 'DP_TOKEN': account.accountInfo.op_access_token,
'DP_REFRESH_TOKEN': account.accountInfo.refresh_token, 'DP_REFRESH_TOKEN': account.accountInfo.op_refresh_token,
}, },
withCredentials: true withCredentials: true
}); });
@@ -181,10 +181,10 @@ const proxyService = (params: any, customConfigs?: CustomConfigs) => {
config.headers['gitcode-utm-source'] = encodeURIComponent(getSignUtmSource()); 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; const { url } = config;
if (access_token && !notAuthorization(url)) { if (op_access_token && !notAuthorization(url)) {
config.headers.Authorization = `Bearer ${access_token}`; config.headers.Authorization = `Bearer ${op_access_token}`;
} }
/** 修改用户模块前缀名称 */ /** 修改用户模块前缀名称 */
config.url = setPassportPrefix(config.url as string, config.method as string); 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; refreshing = true;
try { try {
const res = await refreshToken(); const res = await refreshToken();
refreshing = false; refreshing = false;
if (res.status === 200) { if (res.status === 200) {
const { access_token, refresh_token } = res.data; const { op_access_token, op_refresh_token } = res.data;
localStorage.setItem('access_token', access_token); localStorage.setItem('op_access_token', op_access_token);
localStorage.setItem('refresh_token', refresh_token); localStorage.setItem('op_refresh_token', op_refresh_token);
queue.forEach(({ config, resolve }) => { queue.forEach(({ config, resolve }) => {
if (config.headers) { if (config.headers) {
config.headers.Authorization = `Bearer ${access_token}`; config.headers.Authorization = `Bearer ${op_access_token}`;
} }
resolve(axios(config)); resolve(axios(config));
}); });
queue.splice(0); queue.splice(0);
config.headers.Authorization = `Bearer ${access_token}`; config.headers.Authorization = `Bearer ${op_access_token}`;
return axios(config); return axios(config);
} else { } else {
handleError({}, true); handleError({}, true);

View File

@@ -36,10 +36,10 @@ export function showMessage(res: Record<string, any>, logout: boolean = false) :
// if (!failCode.includes(res.data.error_code.toString())) { // if (!failCode.includes(res.data.error_code.toString())) {
// message = res.data.error_message; // message = res.data.error_message;
// } // }
emitEvent('logout', Boolean(localStorage.getItem('access_token'))); emitEvent('logout', Boolean(localStorage.getItem('op_access_token')));
break; break;
case 403: case 403:
if (localStorage.getItem('access_token')) { if (localStorage.getItem('op_access_token')) {
emitEvent('forbiddenRefresh'); emitEvent('forbiddenRefresh');
} else { } else {
message = res.data.error_message; message = res.data.error_message;

View File

@@ -68,7 +68,7 @@
<span>预警公告</span> <span>预警公告</span>
</div> </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> >更多 <i class="icon icon-chevron-right-2"></i>
</a> </a>
<span v-else class="text-blue-500">查看更多请先登录</span> --> <span v-else class="text-blue-500">查看更多请先登录</span> -->

View File

@@ -83,10 +83,10 @@ const handleDelete = async (row) => {
type: 'success', type: 'success',
message: '成功删除' message: '成功删除'
}); });
let access_token = localStorage.getItem('access_token') || ''; let op_access_token = localStorage.getItem('op_access_token') || '';
let refresh_token = localStorage.getItem('refresh_token') || ''; let op_refresh_token = localStorage.getItem('op_refresh_token') || '';
// 如果是从blog跳转过来的判断是否登陆如果登陆则写入storage // 如果是从blog跳转过来的判断是否登陆如果登陆则写入storage
await account.checkIsLogin(access_token,refresh_token); await account.checkIsLogin(op_access_token,op_refresh_token);
queryInviteListData(); queryInviteListData();
} else { } else {
Message({ Message({

View File

@@ -77,10 +77,10 @@ const handleAccept = async (row, type) => {
groupId: row.groupId, groupId: row.groupId,
status: type status: type
}); });
let access_token = localStorage.getItem('access_token') || ''; let op_access_token = localStorage.getItem('op_access_token') || '';
let refresh_token = localStorage.getItem('refresh_token') || ''; let op_refresh_token = localStorage.getItem('op_refresh_token') || '';
// 如果是从blog跳转过来的判断是否登陆如果登陆则写入storage // 如果是从blog跳转过来的判断是否登陆如果登陆则写入storage
await account.checkIsLogin(access_token,refresh_token); await account.checkIsLogin(op_access_token,op_refresh_token);
if (data?.data?.data?.data) { if (data?.data?.data?.data) {
if(type===1) { if(type===1) {
Message({ Message({

View File

@@ -84,7 +84,7 @@ const getInfo = async () => {
forms.userExt.emailAlertSwitch = user.userExt?.emailAlertSwitch || false; forms.userExt.emailAlertSwitch = user.userExt?.emailAlertSwitch || false;
if (userRes.data?.data) { if (userRes.data?.data) {
localStorage.setItem('userInfo', JSON.stringify(userRes.data?.data)); localStorage.setItem('opUserInfo', JSON.stringify(userRes.data?.data));
useAccountStore().saveAccountInfo({ useAccountStore().saveAccountInfo({
...userRes.data?.data ...userRes.data?.data
}); });

View File

@@ -76,7 +76,9 @@ const goToGovernCenter = async () => {
const res = await fetchCheckAuthenticate({}); const res = await fetchCheckAuthenticate({});
if(res.data.code!==200) return if(res.data.code!==200) return
if (res.data.data) { 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 { } else {
Message.warning('请联系平台管理员,开通账号权限'); Message.warning('请联系平台管理员,开通账号权限');
} }

View File

@@ -50,7 +50,7 @@ onMounted(async() => {
const signup_type = localStorage.getItem('cache_timeStamp') && localStorage.getItem('utm_source') ? '博客加速' : (sessionStorage.getItem('loginType') || ''); 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; 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 (!res.error) {
if (localStorage.getItem('access_token') && fromAtomGit) { if (localStorage.getItem('op_access_token') && fromAtomGit) {
emitEvents('success', '', automgitPath); emitEvents('success', '', automgitPath);
return; return;
} }

View File

@@ -18,7 +18,7 @@ const login = () => {
redirectUrl = route?.query?.redirect.charAt(0) === '/' ? `${decodeURIComponent(route?.query?.redirect)}` : `/${decodeURIComponent(route?.query?.redirect)}`; 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 || '/'); router.replace(redirectUrl || '/');
return; return;
} else { } else {

View File

@@ -181,7 +181,7 @@ const followLoading = ref(false);
const followList = ref([]); const followList = ref([]);
const userList = ref<MemberItemData[]>([]); const userList = ref<MemberItemData[]>([]);
const getUserInfo = (source: RepoGroupUser, content: RepoGroupUser[]) => { 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') || []; const adminList = content?.filter(item => item.access_level.toString() === '50') || [];
return { return {
imageSrc: source.avatar || source.avatar_url, imageSrc: source.avatar || source.avatar_url,

View File

@@ -216,7 +216,7 @@ export const getOrgInfo = () => {
// 获取用户是否可以创建组织 checkUserCreateOrg // 获取用户是否可以创建组织 checkUserCreateOrg
const getUserCreateOrg = async(user?: any) => { const getUserCreateOrg = async(user?: any) => {
const token = localStorage.getItem('access_token'); const token = localStorage.getItem('op_access_token');
if (!token) { if (!token) {
return null; return null;
} }

View File

@@ -13,8 +13,8 @@ export const useUserInfo = (): { isSelf: boolean; userInfo: UserInfo; namespace:
const route = useRoute(); const route = useRoute();
const params = route?.params || {}; const params = route?.params || {};
const namespace = Array.isArray(params.namespace) ? params.namespace.join('/') : params.namespace; const namespace = Array.isArray(params.namespace) ? params.namespace.join('/') : params.namespace;
const userInfoStr = localStorage.getItem('userInfo'); const userInfoStr = localStorage.getItem('opUserInfo');
const userInfoStr2 = sessionStorage.getItem('userInfo'); const userInfoStr2 = sessionStorage.getItem('opUserInfo');
const userInfo: UserInfo = userInfoStr ? JSON.parse(userInfoStr) : userInfoStr2 ? JSON.parse(userInfoStr2) : {}; const userInfo: UserInfo = userInfoStr ? JSON.parse(userInfoStr) : userInfoStr2 ? JSON.parse(userInfoStr2) : {};
const isSelf = userInfo.username?.toLowerCase() === namespace?.toLowerCase(); const isSelf = userInfo.username?.toLowerCase() === namespace?.toLowerCase();
return { return {