Я использую Firebase Authenticationin в своем svelte-приложении.
Я вызвал getRedirectResult в onMount, и если он возвращает значение null, я снова вызываю SignInWithRedirect и getRedirectResult.
Я подтверждаю, что страница перенаправляется из Microsoft после аутентификации.
И я создаю приложение в localhost.
// +layout.svelte
$effect(() => {
if (!auth$.isSignedIn) {
auth$.msSignIn()
}
})
onMount(async () => {
if(!auth$.isSignedIn){
const res = await auth$.msGetResult()
if (res) await goto('/photos')
}
})
export const msSignInEffect =
(auth: Auth): MsSignInEffect =>
async () => {
const provider = new OAuthProvider('microsoft.com')
provider.setCustomParameters({
tenant: '{my tenantId}'
});
await signInWithRedirect(auth, provider, browserPopupRedirectResolver);
return null;
}
export const msGetResultEffect =
(auth: Auth): MsGetResultEffect =>
async () => {
try {
const result = await getRedirectResult(auth, browserPopupRedirectResolver);
if (result) {
newMe(result.user);
return newMe(result.user);
}
return null;
} catch (error) {
console.error("Error during redirect result:", error);
return null;
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... r-redirect