fix: align sudo token with switched auth org context

After org switch, set HtySudoerToken to the refreshed Authorization token so ws endpoints receive current_org_id instead of a sudo2 token without org context.

Made-with: Cursor
This commit is contained in:
2026-04-27 23:40:16 +08:00
parent be5c4fa046
commit 29262d67ec
2 changed files with 11 additions and 4 deletions
+5 -2
View File
@@ -61,7 +61,7 @@ const parseCurrentOrgIdFromToken = (token: string | null): string | undefined =>
router.beforeEach(async (to, from , next) => {
document.title = to.meta.title as string;
let { store, read, login, logout, chooseRole, getUnreadTongzhis, set_editing, sudo2 } = useUser();
let { store, read, login, logout, chooseRole, getUnreadTongzhis, set_editing } = useUser();
let { store: orgStore, loadMyOrgs, switchOrg } = useOrg();
set_editing(false)
store.unionid = (store.unionid || cookie.get(HtyUnionIDToken) || '').toString();
@@ -159,7 +159,10 @@ router.beforeEach(async (to, from , next) => {
next(false);
return;
}
await sudo2();
const currentAuthToken = window.localStorage.getItem(HtyAuthToken);
if (currentAuthToken) {
window.localStorage.setItem(HtySudoToken, currentAuthToken);
}
} else if (organizations.length > 1) {
await router.replace('/org/select');
next();
+6 -2
View File
@@ -21,6 +21,7 @@ import { Cell, CellGroup, Empty, showFailToast } from "vant";
import { useRouter } from "vue-router";
import useOrg from "~/store/org";
import useUser from "~/store/user";
import { HtyAuthToken, HtySudoToken } from "~/utils";
export default defineComponent({
name: "org-select",
@@ -32,7 +33,7 @@ export default defineComponent({
setup() {
const router = useRouter();
const { store, loadMyOrgs, switchOrg } = useOrg();
const { read, sudo2 } = useUser(router);
const { read } = useUser(router);
const orgs = computed(() => store.orgs);
onMounted(async () => {
@@ -44,7 +45,10 @@ export default defineComponent({
if (!switched) {
return;
}
await sudo2();
const currentAuthToken = window.localStorage.getItem(HtyAuthToken);
if (currentAuthToken) {
window.localStorage.setItem(HtySudoToken, currentAuthToken);
}
await read();
await router.replace("/");
};