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:
+5
-2
@@ -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();
|
||||
|
||||
@@ -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("/");
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user