diff --git a/packages/global/support/user/api.d.ts b/packages/global/support/user/api.d.ts index 86ce1f0df7ed..2f8b4f5bdbc2 100644 --- a/packages/global/support/user/api.d.ts +++ b/packages/global/support/user/api.d.ts @@ -12,8 +12,8 @@ export type PostLoginProps = { export type OauthLoginProps = { type: `${OAuthEnum}`; - code: string; callbackUrl: string; + props: Record; } & TrackRegisterParams; export type WxLoginProps = { diff --git a/projects/app/src/pages/login/provider.tsx b/projects/app/src/pages/login/provider.tsx index 276d44925e6e..d5b0149c1a68 100644 --- a/projects/app/src/pages/login/provider.tsx +++ b/projects/app/src/pages/login/provider.tsx @@ -19,7 +19,7 @@ const provider = () => { const { initd, loginStore, setLoginStore } = useSystemStore(); const { setUserInfo } = useUserStore(); const router = useRouter(); - const { code, state, error } = router.query as { code: string; state: string; error?: string }; + const { state, error, ...props } = router.query as Record; const { toast } = useToast(); const loginSuccess = useCallback( @@ -31,12 +31,12 @@ const provider = () => { [setUserInfo, router, loginStore?.lastRoute] ); - const authCode = useCallback( - async (code: string) => { + const authProps = useCallback( + async (props: Record) => { try { const res = await oauthLogin({ type: loginStore?.provider || OAuthEnum.sso, - code, + props, callbackUrl: `${location.origin}/login/provider`, inviterId: localStorage.getItem('inviterId') || undefined, bd_vid: sessionStorage.getItem('bd_vid') || undefined, @@ -86,8 +86,8 @@ const provider = () => { return; } - console.log('SSO', { initd, loginStore, code, state }); - if (!code || !initd) return; + console.log('SSO', { initd, loginStore, props, state }); + if (!props || !initd) return; if (isOauthLogging) return; @@ -107,10 +107,10 @@ const provider = () => { }, 1000); return; } else { - authCode(code); + authProps(props); } })(); - }, [initd, authCode, code, error, loginStore, loginStore?.state, router, state, t, toast]); + }, [initd, authProps, error, loginStore, loginStore?.state, router, state, t, toast, props]); return ; };