소셜 웹 로그인 중단·실패를 이메일 오류 대신 소셜 로그인 문구로 안내 · 네트워크 오류 안내 · Android 중단된 웹 로그인 정리 후 재시도

This commit is contained in:
Sn-Kinos
2026-10-10 21:23:15 +09:00
parent 4d2ce67886
commit bc19797158
7 changed files with 219 additions and 25 deletions
@@ -78,7 +78,7 @@ final class FirebaseAccountLinker implements AccountLinker {
} on fb.FirebaseAuthException catch (error) {
if (isWebFlowCancelled(error)) return const AuthCancelled();
return AuthFailed(
authCatalogCode(error),
authCatalogCode(error, flow: AuthFlow.link),
authMessage(error, flow: AuthFlow.link),
);
} on Object catch (error) {
@@ -108,7 +108,7 @@ final class FirebaseAccountLinker implements AccountLinker {
return AuthSucceeded(_accountOf(_firebaseAuth.currentUser, provider));
} on fb.FirebaseAuthException catch (error) {
return AuthFailed(
authCatalogCode(error),
authCatalogCode(error, flow: AuthFlow.link),
authMessage(error, flow: AuthFlow.link),
);
}
@@ -116,8 +116,8 @@ final class FirebaseAccountLinker implements AccountLinker {
/// LINE(OIDC) 연결 — 웹 흐름이 인증과 연결을 한 번에 끝낸다. 검증 · 충돌 거부는 Firebase 가 한다.
Future<AuthOutcome> _linkOidc(fb.User user, OidcSignInProvider impl) async {
final result = await untilAbandoned(
user.linkWithProvider(impl.authProvider),
final result = await retryStaleWebContext(
() => untilAbandoned(user.linkWithProvider(impl.authProvider)),
);
return AuthSucceeded(_accountOf(result.user, impl.provider));
}