ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Flutter(플러터) 구글로그인(Google Oauth) 구현
    Flutter, 플러터 2023. 3. 3. 13:14
    반응형

    Flutter(플러터) 구글로그인(Google Oauth) 구현

    Flutter에서 Google OAuth를 사용하려면, Google API Console에서 OAuth 2.0 클라이언트 ID를 만들어야 합니다. 이후 Flutter 애플리케이션에서 google_sign_in 패키지를 사용하여 OAuth 인증을 처리할 수 있습니다.

    1.Google API Console에서 OAuth 2.0 클라이언트 ID 생성

    • Google API Console에 로그인합니다.
    • 새 프로젝트를 만들거나 기존 프로젝트를 선택합니다.
    • 왼쪽 탐색 메뉴에서 "사용자 인증 정보"를 클릭합니다.
    • "사용자 인증 정보 만들기" 버튼을 클릭하여 "OAuth 클라이언트 ID"를 선택합니다.
    • "어플리케이션 유형"을 "Android"로 선택합니다.
    • "패키지 이름"과 "SHA-1 지문"을 입력합니다.
    • "만들기" 버튼을 클릭하여 OAuth 2.0 클라이언트 ID를 생성합니다.

    2.google_sign_in 패키지 추가

    Flutter 애플리케이션에서 Google OAuth를 사용하기 위해서는 google_sign_in 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 추가합니다.

     

     

     

     

    yaml

    dependencies:
      google_sign_in: ^5.0.1

     

    3.Google OAuth 로그인 처리

    Google OAuth 로그인 처리를 위해서는 google_sign_in 패키지에서 제공하는 GoogleSignIn 클래스를 사용합니다.

    dart

    import 'package:google_sign_in/google_sign_in.dart';
    
    final GoogleSignIn googleSignIn = GoogleSignIn();
    
    Future<void> signInWithGoogle() async {
      final GoogleSignInAccount? googleSignInAccount = await googleSignIn.signIn();
      final GoogleSignInAuthentication googleSignInAuthentication =
          await googleSignInAccount!.authentication;
    
      final OAuthCredential credential = GoogleAuthProvider.credential(
        accessToken: googleSignInAuthentication.accessToken,
        idToken: googleSignInAuthentication.idToken,
      );
    
      final UserCredential userCredential =
          await FirebaseAuth.instance.signInWithCredential(credential);
      final User user = userCredential.user!;
    }

    위 코드에서 signInWithGoogle() 함수를 호출하면 Google 로그인 페이지가 열리고, 사용자가 로그인하면 GoogleSignInAuthentication 객체를 반환합니다. 이 객체에서 accessToken과 idToken을 가져와서 Firebase 인증에 사용할 수 있는 OAuthCredential 객체를 생성합니다. 마지막으로, FirebaseAuth.instance.signInWithCredential() 메서드를 사용하여 Firebase 인증을 수행합니다.

     

    4.Google OAuth 로그아웃 처리

    Google OAuth 로그아웃 처리는 다음과 같이 구현할 수 있습니다.

    dart

    import 'package:google_sign_in/google_sign_in.dart';
    
    final GoogleSignIn googleSignIn = GoogleSignIn();
    
    Future<void> signOutGoogle() async {
      await googleSignIn.signOut();
    }

    위 코드에서 signOutGoogle() 함수를 호출하면 현재 사용자가 로그아웃되고 GoogleSignInAuthentication 객체도 삭제됩니다.

    반응형

    댓글

Designed by Tistory.