본문 바로가기

Flutter-플러터/플러터 공부

Flutter Google login 개삽질 오류

반응형

 

 

문제 해결 목적

 

supabase를 이용한 소셜 로그인 구현하기 

 

처음에는 supabase 의 호환성 문제라고 생각했다 

구현해보니 google이 악마였다. 

 

Supabase로 Google과 Apple 로그인을 구현이 목적이다. 

안드로이드는 Google만 가능하고 

IOS는 Google과 Apple 동시에 가능하게 할 것이다 (애플 정책때문에)

 

 


문제해결 과정

 

supabase를 통한 ios 는 아래글 참고 이 글을 쓸때까지만해도 google이 더 쉬운줄 알았다...

2024.02.11 - [Flutter-플러터/플러터 공부] - Flutter supabase Apple login 구현

 

Flutter supabase Apple login 구현

문제 해결 목적 supabase Apple 로그인 구현하기 문제 해결 과정 1. 애플 개발자 계정 등록하기 - 애플 개발자 계정을 등록 후 로그인 토큰을 받기 위해 개발자 설정을 진행합니다. - 해당 프로젝트 xco

ownerdev88.tistory.com

 

 

자 이제 google을 해결할 차례 

문제를 해결하면서 두 가지의 오류를 만났다. 

 

10번 

12500번

 

이거 구현해본 개발자라면 위 숫자만 봐도 치가 떨릴 것이다. 

그렇다. 이 글을 쓰는 내내 키보드를 치는 내 손은 떨고 있다. 

 

먼저 구글 로그인을 진행할 때 대부분 Firebase를 이용한다. 이유는 거기다 정보만 입력하면 알아서 셋팅해주기 때문이다. 

그래서 구글 로그인을 작업하는 방법은 두가지이다. 구글 클라우드에서 해당 인증 ID를 직접 만드는 방법, 파이어베이스에서 진행하는 방법 

두가지 동시에 진행하명 해당 인증 ID에 있는 키들이 중복으로 사용되어져 오류가 생길수 있다. 

 

나는 구글클라우드에서 직접 작업했다. 

여기서 안드로이드를 작업할 때 SHA1 키를 입력해야 한다.   앱이 출시가 되었다는 가정하에 SHA1 키는 3가지를 등록해야 한다. 

1. debugkey = 작업 할 때 사용

2. releasekey= 앱 출시 후 유저가 사용 

3. uploadkey=  이건 모르겠지만 이거 넣고 난 작동함 (추후 추가설명)

 

2번과 3번은 앱 출시 후 구글 플레이 콘솔 - 서명으로 이동하면 확인 가능하다. 


10번 오류는 SHA1키의 문제이다.

 

 

유효한 SHA1 키가 아니기 때문에 뱉어나는 문제이다. 즉 위 3가지 SHA1 키를 정확하게 구글 클라우드나 파이어베이스에 입력해야 한다. 파이어베이스에서는 SHA1 키를 입력만 하면 되지만 구글 클라우드에서는 해당 인증 id를 하나씩 만들고 SHA1 키를 입력해야 한다. 

 

 


12500번 오류는 복합적이다. 

 

1. 구글 클라우드 동의화면 설정하는 화면으로 넘어가면 지원 이메일과 밑에 있는 정보들을 입력하면 된다. 문제는 이 확인 절차가 최대 몇주가 걸릴 수 있다고 하는 것이다. 망할놈. 인증이 될 때까지는 이상한 경고문구가 뜨고 일 로그인 제한수가 100이다. 슈벙 개개개기

이럴 거면 미리 이건 꼭 해야 한다고 알려줘야 하는거 아니냐 

 

 

 

 

2. 위 정보를 입력할 때 유저에게 요청하는 정보 범위를 선택할 수 있다. 그 범위가 대부분 email, profile이다.  supabase google 로그인 코드에는 해당 범위가 명시되어 있지 않다. 그래서 코드에도 동의 화면에서 요청하는 범위와 코드에서 요청하는 범위를 일치시켜주어야 한다. 

final GoogleSignInAccount? googleUser = await GoogleSignIn(
        clientId: iosClientId,
        serverClientId: webClientId,
        scopes: ['email', 'profile'],
        hostedDomain: '',
      ).signIn();

 

 

3. SHA1 키... 10번 오류는 SHA1 키가 다르기 때문에 생긴 것이라면 12500의 오류는 있어야 할 SHA1키가 없어서 생긴 오류인 것 같다. (내 추측) 왜냐면.. 나는 저 upload SHA1 키를 구글 클라우드에 새로 ID를 만들었더니 작동했다.... 

 

 

 

supabase를 사용하니 기존 이메일로 로그인했던 유저가 소셜로그인을 하면  자동으로 같은 유저로 인식해준다. 개꿀이다. 

 

 

 


추가... 초창기 구글 내부테스트로 내 아이디를 테스터로 올려놨더니... 오류가 .. 후아 

메인 계정으로는 테스트 올리지 말아야 겠다. 

반응형