fix: use stable callback redirect_uri for oidc login

This commit is contained in:
Chris
2026-03-30 01:08:08 +08:00
parent 42f04ef961
commit 1ec132184f
2 changed files with 5 additions and 3 deletions

View File

@@ -29,17 +29,18 @@ const error = ref('')
onMounted(async () => {
const code = route.query.code
const redirect = route.query.redirect || '/me'
const redirect = sessionStorage.getItem('post_login_redirect') || '/me'
if (!code || typeof code !== 'string') {
error.value = '缺少授權碼,請重新登入'
return
}
try {
const callbackUrl = `${window.location.origin}/auth/callback?redirect=${encodeURIComponent(redirect)}`
const callbackUrl = `${window.location.origin}/auth/callback`
const res = await exchangeOidcCode(code, callbackUrl)
authStore.setToken(res.data.access_token)
await authStore.fetchMe()
sessionStorage.removeItem('post_login_redirect')
router.replace(typeof redirect === 'string' ? redirect : '/me')
} catch (err) {
authStore.logout()