Kakao·LINE 로그인을 Firebase OIDC 제공자로 연결 · 계정 연결

This commit is contained in:
Sn-Kinos
2026-10-04 15:56:48 +09:00
parent e255973a8d
commit c8d29d032b
5 changed files with 256 additions and 32 deletions
+16 -7
View File
@@ -4,6 +4,7 @@ import 'package:flutter/foundation.dart';
import '../../core/firebase/firebase_boot.dart';
import 'auth.dart';
import 'firebase_account_linker.dart';
import 'social_providers.dart';
import '../../core/i18n/app_locale.dart';
@@ -56,18 +57,26 @@ class AuthRepository extends ChangeNotifier {
/// 사용자가 닿는 경로가 없다 — 읽는 분기가 없는 기능 플래그로 닫는 것보다 확실하다.
/// QA 경로는 [qaEmailProvider] 하나뿐이다.
///
/// Apple·카카오·LINE 은 발주사 키가 없어 「키 대기」 상태다. 눌러도 예외가 아니라
/// [AuthNotConfigured] 가 돌아오고 화면이 안내 다이얼로그를 띄운다.
/// 카카오·LINE 은 Firebase OIDC 제공자다. 콘솔 설정 전이면 Firebase 가
/// `operation-not-allowed`(E-AUTH-11)를 돌려준다.
static List<SocialAuthProvider> _defaultProviders() => [
const GoogleSignInProvider(),
AppleSignInProvider(
webAuthenticationOptions: appleWebAuthenticationOptionsFromEnvironment(),
),
const KeylessSocialProvider(AuthProviderKind.kakao, [
'카카오 네이티브 앱 키',
'카카오 개발자 콘솔 앱 등록(사업자 정보 필요)',
]),
lineProvider,
// 동의 항목: 카카오 콘솔의 닉네임·이메일, LINE 의 profile·email(이메일 권한 신청 승인 후).
OidcSignInProvider(
AuthProviderKind.kakao,
providerId: FirebaseAccountLinker.providerIds[AuthProviderKind.kakao]!,
// 이메일(account_email)은 비즈 앱 전환 후에만 요청할 수 있다. 전환 전에 요청하면
// KOE205 로 로그인 자체가 막힌다 — 전환되면 여기에 다시 넣는다.
scopes: const ['profile_nickname'],
),
OidcSignInProvider(
AuthProviderKind.line,
providerId: FirebaseAccountLinker.providerIds[AuthProviderKind.line]!,
scopes: const ['profile', 'email'],
),
];
/// QA 계정(qa-test@fanuzu.co.kr) 전용 이메일 로그인 — **디버그 빌드에서만**.