-
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 객체도 삭제됩니다.
반응형'Flutter, 플러터' 카테고리의 다른 글
Flutter(플러터) 구글 맵 사용 해서 위젯 만들기 (0) 2023.03.08