[Flutter] Google Login 구현
https://jutole.tistory.com/159
[Flutter] Google Login 설정 - feat.Firebase
시작에 앞서 Firebase 기본 설정은 맞추셔야 합니다. 1. Firebase 로그인 제공업체 추가 Authentication -> 로그인 방법 -> 새 제공업체 추가 -> Google 선택 중요 메시지를 확인하고 사용 설정을 선택
jutole.tistory.com
설정이 안 되어 계신다면 설정먼저 하고 와주세요.
1. google_sign_in 패키지 설치
https://pub.dev/packages/google_sign_in
google_sign_in | Flutter package
Flutter plugin for Google Sign-In, a secure authentication system for signing in with a Google account.
pub.dev
2. firebase_auth 패키지 설치
https://pub.dev/packages/firebase_auth
firebase_auth | Flutter package
Flutter plugin for Firebase Auth, enabling authentication using passwords, phone numbers and identity providers like Google, Facebook and Twitter.
pub.dev
3. 구현
Google Login을 하기 위한 준비가 끝났습니다.
(구현 예시 코드입니다.)
import 'package:google_sign_in/google_sign_in.dart';
Future<UserCredential> signInWithGoogle() async {
// Trigger the authentication flow
final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();
// Obtain the auth details from the request
final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;
// Create a new credential
final credential = GoogleAuthProvider.credential(
accessToken: googleAuth?.accessToken,
idToken: googleAuth?.idToken,
);
// Once signed in, return the UserCredential
return await FirebaseAuth.instance.signInWithCredential(credential);
}
GoogleSignIn().signIn()
구글 로그인 화면을 열고 로그인을 진행합니다. 사용자가 로그인을 진행하지 않고 복귀 시에는 null을 반환합니다. 사용자가 로그인을 진행하였으면 아래와 같은 정보들을 가지고 옵니다.
googleUser.authentication
로그인으로 얻은 정보를 가지고 *idToken과 accessToken*을 받아오기 위한 작업입니다. 해당 토큰으로 Google 서비스와 상호작용할 수 있도록 하는 중요한 단계입니다.
GoogleAuthProvider.credential
Google에서 받은 토큰을 가지고 Firebase에서 사용할 수 있도록 변환하는 과정입니다.
FirebaseAuth.instance.signInWithCredential
최종적으로 Firebase에서 사용자를 로그인 처리하고, 성공 시 해당 사용자의 정보를 가져옵니다.
4. 확인
로그인을 성공하고 나면 Firebase에서 위에 사진처럼 SocialLogin 한 유저를 확인할 수 있습니다.