LINE 로그인을 LINE SDK와 서버 인증 토큰 방식으로 변경 — iOS·Android 웹 로그인 중단 문제 해결

This commit is contained in:
Sn-Kinos
2026-10-11 01:29:23 +09:00
parent e440251c78
commit 9119b3beaa
18 changed files with 758 additions and 164 deletions
+3 -28
View File
@@ -12,7 +12,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
/// LINE OIDC 제공자 — 실 로그인은 못 하고,
/// Firebase 웹 흐름(OIDC) 제공자 — 지금은 Android Apple 이 쓴다(LINE 을 예시 제공자로 둔다). 실 로그인은 못 하고,
/// Firebase 호출 전후 계약(결과 매핑·취소·연결)만 확인한다.
void main() {
// Android 에서 signIn 이 앱 생명주기를 듣는다(untilAbandoned).
@@ -28,18 +28,11 @@ void main() {
firebaseAuth: auth,
);
test('기본 목록: LINE 은 Firebase OIDC, 카카오는 SDK + 서버 커스텀 토큰', () {
test('기본 목록: 카카오 · LINE 은 SDK + 서버 커스텀 토큰', () {
final providers = {
for (final p in AuthRepository().providers) p.provider: p,
};
final p = providers[AuthProviderKind.line];
expect(p, isA<OidcSignInProvider>());
expect(p!.isLive, isTrue);
expect(
(p as OidcSignInProvider).providerId,
FirebaseAccountLinker.providerIds[AuthProviderKind.line],
);
expect(p.authProvider.providerId, 'oidc.line');
expect(providers[AuthProviderKind.line], isA<LineSignInProvider>());
expect(providers[AuthProviderKind.kakao], isA<KakaoSignInProvider>());
});
@@ -87,24 +80,6 @@ void main() {
expect((outcome as AuthFailed).code, 'E-AUTH-11');
});
test('LINE 은 Android · iOS 모두 앱 자동 로그인을 끈다', () {
final line =
AuthRepository().providers.firstWhere(
(p) => p.provider == AuthProviderKind.line,
)
as OidcSignInProvider;
expect(line.authProvider.parameters, {
'disable_auto_login': 'true',
'disable_ios_auto_login': 'true',
});
debugDefaultTargetPlatformOverride = TargetPlatform.iOS;
addTearDown(() => debugDefaultTargetPlatformOverride = null);
expect(line.authProvider.parameters, {
'disable_auto_login': 'true',
'disable_ios_auto_login': 'true',
});
});
testWidgets('Android: 앱으로 돌아왔는데 결과가 없으면 취소로 풀린다', (tester) async {
late AuthOutcome outcome;
line(_HangingAuth()).signIn().then((o) => outcome = o);