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) => {
|
router.beforeEach(async (to, from , next) => {
|
||||||
document.title = to.meta.title as string;
|
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();
|
let { store: orgStore, loadMyOrgs, switchOrg } = useOrg();
|
||||||
set_editing(false)
|
set_editing(false)
|
||||||
store.unionid = (store.unionid || cookie.get(HtyUnionIDToken) || '').toString();
|
store.unionid = (store.unionid || cookie.get(HtyUnionIDToken) || '').toString();
|
||||||
@@ -159,7 +159,10 @@ router.beforeEach(async (to, from , next) => {
|
|||||||
next(false);
|
next(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await sudo2();
|
const currentAuthToken = window.localStorage.getItem(HtyAuthToken);
|
||||||
|
if (currentAuthToken) {
|
||||||
|
window.localStorage.setItem(HtySudoToken, currentAuthToken);
|
||||||
|
}
|
||||||
} else if (organizations.length > 1) {
|
} else if (organizations.length > 1) {
|
||||||
await router.replace('/org/select');
|
await router.replace('/org/select');
|
||||||
next();
|
next();
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import { Cell, CellGroup, Empty, showFailToast } from "vant";
|
|||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
import useOrg from "~/store/org";
|
import useOrg from "~/store/org";
|
||||||
import useUser from "~/store/user";
|
import useUser from "~/store/user";
|
||||||
|
import { HtyAuthToken, HtySudoToken } from "~/utils";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "org-select",
|
name: "org-select",
|
||||||
@@ -32,7 +33,7 @@ export default defineComponent({
|
|||||||
setup() {
|
setup() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { store, loadMyOrgs, switchOrg } = useOrg();
|
const { store, loadMyOrgs, switchOrg } = useOrg();
|
||||||
const { read, sudo2 } = useUser(router);
|
const { read } = useUser(router);
|
||||||
const orgs = computed(() => store.orgs);
|
const orgs = computed(() => store.orgs);
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
@@ -44,7 +45,10 @@ export default defineComponent({
|
|||||||
if (!switched) {
|
if (!switched) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await sudo2();
|
const currentAuthToken = window.localStorage.getItem(HtyAuthToken);
|
||||||
|
if (currentAuthToken) {
|
||||||
|
window.localStorage.setItem(HtySudoToken, currentAuthToken);
|
||||||
|
}
|
||||||
await read();
|
await read();
|
||||||
await router.replace("/");
|
await router.replace("/");
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user