[flutter] firebase_auth + sign_in_with_apple 애플 로그인 방법

dev-nam 2023. 3. 31. 16:44

플러터 firebase_auth + sign_in_with_apple 애플 로그인 방법

앱에 소셜 로그인 기능을 구현하려면 애플 정책에 따라 Sign in with Apple 로그인은 필수입니다. 플러터에서 어떻게 애플 로그인을 구현하는지 알아보겠습니다.

 

파이어베이스 인증 제공업체 추가

파이어베이스 프로젝트 페이지에 접속해서 Authentication > Sign-in method 탭으로 이동합니다. 그리고 새 제공업체 추가 버튼으로 Apple 방식을 추가하고 사용 설정을 활성으로 변경하여 저장합니다. 하단부에 콜백 URL도 사용해야 되니 복사해 둡니다.

 

애플 개발자 App ID 등록

애플 개발자 센터 페이지에 접속해서 Identifiers 추가하기 버튼을 눌러 새로운 App ID를 생성합니다. 기존에 만들어둔 아이디가 있다면 수정하기로 들어가 다음 작업을 진행하시면 됩니다.

 

Register a new identifier 항목은 App IDs를 선택하고 다음으로 넘어갑니다.

 

타입은 App을 선택합니다.

 

이제 App ID 정보를 입력합니다. Description에는 아이디에 대한 간략한 설명을 추가하고, Bundle ID에는 현재 구현 중인 앱의 번들 아이디 값을 찾아서 입력합니다.

 

그리고 계속하기 버튼을 누르면 사용할 기능에 대한 선택지가 나오는데 여기서 Sign In with Apple을 체크하고, Edit 버튼을 누릅니다.

 

다음과 같은 선택창이 나오는데 첫 번째는 Enable as a primary App ID를 선택하고, 두 번째 입력란에는 맨 처음에 파이어베이스 설정 시 복사해 둔 콜백 URL을 입력하고 App ID 생성을 완료합니다.

마지막으로 Xcode 프로젝트를 실행해서 애플 로그인 기능을 추가해 주면 모든 설정이 끝납니다.

 

애플 로그인 요청 코드

아래는 애플 로그인을 요청하는 코드입니다.

import 'package:firebase_auth/firebase_auth.dart';
import 'package:sign_in_with_apple/sign_in_with_apple.dart';
...

Future<void> loginApp() async {
  final AuthorizationCredentialAppleID appleCredential =  await SignInWithApple.getAppleIDCredential(
    scopes: [
      AppleIDAuthorizationScopes.email,
      AppleIDAuthorizationScopes.fullName,
    ],
  );
      
  final OAuthCredential credential = OAuthProvider('apple.com').credential(
    idToken: appleCredential.identityToken,
    accessToken: appleCredential.authorizationCode,
  );
      
  await FirebaseAuth.instance.signInWithCredential(credential);
}

 

반응형