DevBoi

[Flutter] Firebase auth + Google login 구현 본문

[Mobile]/[Flutter]

[Flutter] Firebase auth + Google login 구현

HiSmith 2023. 11. 12. 20:02
반응형

Google 로그인 관련 정리

 

기존 파이어베이스 관련 프로젝트 설정을 완료했다고 가정한다.

 

1.  Firebase auth 세팅

프로젝트 설정에서 google signup 설정을 해준다.

 

2. 구글 로그인 의존성을 추가해준다.

flutter pub add google_sign_in

 

3. 뷰모델과 로그인 구현체

import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart';
import 'package:myvalue/util/login/http/login-httpapi.dart';
import 'package:myvalue/util/login/widget/social/kakao/kakao_login.dart';
import 'package:myvalue/view/sociallogin/kakao/userprofile/kakao_profile.dart';
import '../social_login.dart';

class GoogleViewModel{
  final SocialLogin _socialLogin;
  bool isLogined = false;
  User? user;
  GoogleViewModel(this._socialLogin){
  }

  Future register() async{
    isLogined = await _socialLogin.login();
    if(isLogined){
      return true;
    }
    return false;
  }

  Future logout() async{
    await _socialLogin.logout();
    isLogined = false;
    user = null;
  }
}

 

import 'package:google_sign_in/google_sign_in.dart';
import 'package:myvalue/util/chat/widget/message.dart';
import 'package:myvalue/view/sociallogin/social_login.dart';
import 'package:myvalue/view/util/provider-util.dart';

class GoogleLogin implements SocialLogin{
  @override
  Future<bool> login() async{
  final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();

  if(googleUser != null){
    userProvider.setUserId(googleUser.id);
    userProvider.setEmail(googleUser.email);
    userProvider.setName(googleUser.displayName!);
    return true;
  }
  else{
    return false;
  }
  }

  @override
  Future<bool> logout() {

    throw UnimplementedError();
  }
}

 

 

 

코드 내용은 별게 없다.

그냥 로그인해서 가져온 사용자의 정보를 가지고 프로바이더에 넣고 넘겨주는것

회원가입으로 백엔드에 보내는 로직은 모든 가입 끝단에서 세팅된 프로바이더의 정보로 보내기때문에 이슈가없다.

 

 

간단하게 구글 로그인 구현 끝

반응형