반응형

서론

[RequestTokenManager] getToken() -> NETWORK_ERROR. App: com.example.practice_project, Service: oauth2:email openid profile
aoav: Error when calling server using GmsNetworkStack.

라는 생전 처음 보는 오류..

어디서 생겼나면

val currentUser = Firebase.auth.currentUser
        if (currentUser == null) {
            firebaseAuth = FirebaseAuth.getInstance()
            launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
                Log.v("google", "1, resultCode: ${result.resultCode}입니다.")
                ...

이 곳입니다 파이어베이스를 통해서 구글 소셜 로그인에서 문제가 생긴건데요.

 

claude에게 물어봤더니
1. 인터넷 연결 문제
불안정한 Wi-Fi 또는 모바일 데이터 연결
네트워크 신호 약화
서버 연결 시간 초과

2. OAuth 서비스 관련 문제
Google 인증 서버의 일시적인 장애
앱의 OAuth 구성 문제
잘못된 인증 자격 증명

3. 앱 또는 디바이스 관련 문제
오래된 앱 버전
캐시 및 데이터 문제
디바이스의 시스템 설정 문제

4. 해결 방법:
인터넷 연결 확인
앱 다시 시작
앱 캐시 및 데이터 지우기
Google Play 서비스 업데이트
디바이스 재부팅
앱 재설치
라는데요


전혀 아니였죠? 일단 해결 방법이 전혀 없었고, 속해있지도 않음 ㅋㅋ

 

결론

적으로 

이 문제는 Google API의 OAuth를 사용할 때 클라이언트 ID문제인데요 


최근에 플레이 콘솔에 업로드 하기 위해서 Firebase랑 GCP 를 들락날락하면서 Play Integrity API도 연동 준비를 맞춰놓으면서
GCP의 API Key나 서비스계정을 재발급받고 하는 등, 뭔가 건드리면 안될 것들을 건드려서 킹리적 갓심으로 이 부분이 문제라고 생각했습니다.

그래서 뒤져본바 띠용 OAuth 2.0 클라이언트 ID가 하나 더 생겼네? 라는 걸 발견
string.xml 에서 해당 client ID를 예전것 -> 새 것 으로 고쳐서 다시 client 요청했더니 

이 구글 버튼을 클릭해서 로그인이 진행될 때 요청하는 client_id를 수정해줘야 한다는 것 ! 

CoroutineScope(Dispatchers.IO).launch {
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken("OAuth 클라이언트 ID")
        .requestEmail()
        .build()
    val googleSignInClient = GoogleSignIn.getClient(context, gso)
    val signInIntent: Intent = googleSignInClient.signInIntent
    launcher.launch(signInIntent)
}

 

response.code = -1 로 완료 

 

 

반응형