fix: 修复第三方登录丢失state时无法在用户信息页面绑定第三方账号的bug

This commit is contained in:
xiaojunnuo
2026-05-13 23:47:31 +08:00
parent 4681ec9008
commit 45dedf5bc7
2 changed files with 16 additions and 8 deletions
@@ -38,6 +38,9 @@ export const useUserStore = defineStore({
getToken(): string {
return this.token || LocalStorage.get(TOKEN_KEY);
},
isLogined(): boolean {
return !!this.getToken;
},
isAdmin(): boolean {
return this.getUserInfo.roleIds?.includes(1) || this.getUserInfo.id === 1;
},
@@ -9,8 +9,9 @@
<div>第三方{{ oauthType }}登录成功您还未绑定账号请选择</div>
<div class="mt-10">
<a-button class="w-full mt-10" type="primary" @click="goBindUser">绑定已有账号</a-button>
<a-button v-if="settingStore.sysPublic.registerEnabled" class="w-full mt-10" type="primary" @click="autoRegister">创建新账号</a-button>
<a-button v-if="!userStore.isLogined" class="w-full mt-10" type="primary" @click="goBindUser">绑定已有账号</a-button>
<a-button v-else class="w-full mt-10" type="primary" @click="doBindCurrent">绑定当前登录账号({{ userStore.getUserInfo.username }} - {{ userStore.getUserInfo.nickName }})</a-button>
<a-button v-if="settingStore.sysPublic.registerEnabled" class="w-full mt-10" type="primary" @click="autoRegister">创建新账号绑定</a-button>
</div>
<div class="w-full mt-10">
@@ -63,6 +64,15 @@ async function handleOauthToken() {
}
}
async function doBindCurrent() {
await api.BindUser(validationCode);
notification.success({
message: "绑定成功",
});
//跳转到首页
router.replace("/certd/mine/user-profile");
}
onMounted(async () => {
if (error.value) {
return;
@@ -70,12 +80,7 @@ onMounted(async () => {
if (forType === "bind") {
//从用户中心页面,进行第三方账号的绑定
await api.BindUser(validationCode);
notification.success({
message: "绑定成功",
});
//跳转到首页
router.replace("/certd/mine/user-profile");
await doBindCurrent();
return;
}