fix(web): 修复后台登录回跳地址

This commit is contained in:
sunlei 2026-05-17 13:56:49 +08:00
parent fae5a9b99e
commit 99f5615144
3 changed files with 19 additions and 5 deletions

View File

@ -1,6 +1,6 @@
NODE_ENV=development
VITE_APP_PLAY_GROUND=http://localhost:48090
VITE_APP_PROXY=http://localhost:48085/
VITE_APP_ADMIN_LOGIN=http://localhost:5999/auth/login
VITE_APP_ADMIN_LOGIN=http://localhost:5999/#/auth/login
VITE_APP_BASE_API=/api
VITE_APP_OSS_DOMAIN=/chart-assets

View File

@ -49,10 +49,24 @@ export const persistAuthData = ({
}
};
export const redirectToAdminLogin = () => {
const buildAdminLoginUrl = (redirect: string) => {
const loginUrl = new URL(config.adminLogin);
loginUrl.searchParams.set("redirect", encodeURIComponent(window.location.href));
window.location.href = loginUrl.toString();
if (loginUrl.hash) {
const [hashPath, hashSearch = ""] = loginUrl.hash.slice(1).split("?");
const hashParams = new URLSearchParams(hashSearch);
hashParams.set("redirect", redirect);
// Admin 生产环境使用 hash 路由redirect 必须放在 hash 内部才能被 Vue Router 读取。
loginUrl.hash = `${hashPath}?${hashParams.toString()}`;
return loginUrl.toString();
}
loginUrl.searchParams.set("redirect", redirect);
return loginUrl.toString();
};
export const redirectToAdminLogin = () => {
window.location.href = buildAdminLoginUrl(window.location.href);
};
export const refreshPersistedAuth = async () => {

View File

@ -1,7 +1,7 @@
import { os } from "@/utils/detect";
const config = (() => ({
adminLogin: import.meta.env.VITE_APP_ADMIN_LOGIN || `${window.location.protocol}//${window.location.hostname}:5999/auth/login`,
adminLogin: import.meta.env.VITE_APP_ADMIN_LOGIN || `${window.location.protocol}//${window.location.hostname}:5999/#/auth/login`,
isMobileApp: !os.desktop,
axiosBase: "/api",
playground: import.meta.env.VITE_APP_PLAY_GROUND,