Dev/Flutter

[Flutter] Flutter에서 Apple Sign-In과 Firebase 인증 통합 구현하기

healthyryu 2024. 12. 31. 14:47

Flutter 에서 Firebase 를 활용해서 각종 SNS 로그인 기능을 구현에 관심있는 사람들을 위해서 만든 SNS 로그인 시리즈 입니다. 이번 포스팅에서는 애플 로그인을 구현하는 방법을 알려드릴려고 합니다.

 

iOS 앱에서 SNS 를 활용해서 로그인 기능을 만들경우 Apple 의 정책상 Apple Sign in 기능이 필수 이기에 반드시 필요한 기능입니다.

위의 설명처럼 SNS login 기능을 넣을 경우, Apple Sign in 을 제공하지 않으면 심사를 통과할 수 없습니다.

 

 

그럼, 애플 로그인 기능을 만들어봅시다!!!


 

1. Firebase 인증 + 애플 로그인 기능을 만들기 위한 사전 완료 작업

- Firebase 프로젝트 생성 및 설정

- Apple Developer 계정 (유료 / 2024.12.31 기준 - 129,000원)

- flutterfire configure 명령어를 입력해서 나의 Flutter 앱과 Firebase 연동

 

2. 필요한 플러그인 패키지 설치

- firebase_core

- firebase_auth

- sign_in_with_apple

 

3. Firebase Console 에서 Apple 로그인 기능 활성화

Fireabse Console -> 나의 프로젝트 -> 빌드 -> Authentication -> 로그인 방법 -> 새 제공업체 추가

 

새 제공업체 추가 하고 Apple 선택

 

Apple 사용 설정 활성화 하고 저장

 

 

4. Apple Developer 설정

Apple ID 생성하기

Apple Developer -> Identifiers

 

  • Identifiers + 버튼을 눌러서 생성하기

  • App IDs 선택하기

 

  • App 선택하기

  • Description, Bundle ID 작성하고 Sign In with Apple 선택하기

 

 

 

5. XCode 설정

Runner -> TARGETS Runner -> Signing & Capablities

+ Capability 버튼 눌러서 Sign in with Apple 추가

 

 

6. Flutter 코드 추가

class _LoginPageState extends State<LoginPage> {
  FirebaseAuth firebaseAuth = FirebaseAuth.instance;

  @override
  Widget build(BuildContext context) {
		...
  }

  void appleLogin() async {
    // Apple 로그인 구현
    final credential = await SignInWithApple.getAppleIDCredential(
      scopes: [
        AppleIDAuthorizationScopes.email,
        AppleIDAuthorizationScopes.fullName,
      ],
    );

    // Firebase 인증 작업
    final oauthCredential = OAuthProvider("apple.com").credential(
      idToken: credential.identityToken,
      accessToken: credential.authorizationCode,
    );

    // Firebase 로그인
    await firebaseAuth.signInWithCredential(oauthCredential);
  }
}

 

반응형