AuthorizeFederation 에러 응답

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : Backend-5.17.1-hotfix-0605
  • 프로젝트명 : RealVRFishing
  • 스테이터스 코드 : 401
  • 에러 코드 : BadUnauthorizedException
  • 에러 메시지 : bad bad GPGS2 accessToken, 잘못된 bad GPGS2 accessToken 입니다

VR 환경에서 웹뷰를 띄워 로그인을 시도하고 있습니다.

string clientId = “967557474965-fsbrqiqhp4967csfao0ba6oi74gl5k8e.apps.googleusercontent.com”;
string redirectUri = “https://auth0.thebackend.io”;
string scope = “email%20profile”;

string loginUri = $"https://accounts.google.com/o/oauth2/v2/auth?" +
$“client_id={clientId}&” +
$“redirect_uri={redirectUri}&” +
$“response_type=token&” + // 또는 “code”, “token”
$“scope={scope}&” +
$“state=vrapp”;

WebView.LoadUrl(loginUri)

redirection url 을 받아 AccessToken 을 파싱하여 Backend.BMember.AuthorizeFederation 로 보냈을 때 에러상황입니다.

안녕하세요 개발자님,
관련 내용 확인하여 안내드리겠습니다.

확인 시 잘못된 로그인방식 적용으로 인해 발생한 에러로 확인됩니다.
로그인 타입에 따라 Sign In with Google, 그리고 GPGS V2는 필요한 토큰 값이 다릅니다.
AuthorizeFederation에서 시도하려는 로그인 방식이 Sign In with Google 인지, GPGS V2 인지 확인하시고,
각 로그인 타입에 맞는 토큰 확인 방법을 개발자문서를 통해 확인하시고 시도하여 주시면 감사하겠습니다.
(남겨주신 말씀상으로는 Sign In with Google을 시도하였어야 하나 GPGS V2 로그인을 시도한 것으로 예상됩니다.)

  1. SignInWithGoogle 방식 : TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin 호출 후 구글 로그인 화면 뜨고 로그인 하면 응답 없음. (Callback 호출이 되지 않음)
  2. GPGS V2 방식 : PlayGamesPlatform.Instance.Authenticate 호출 후 Callback 에서 SignInStatus Cancel 들어옴. (구글 로그인 화면 아예 안뜸)
  3. 개발자 가이드에서의 두 가지 방식이 모두 되지 않아 자체 웹뷰를 띄워서 로그인 하는 방식 : 해당 문의

이렇게 진행한 상태입니다. 다른 방식으로 구글 로그인 하는 방식이 있을까요?

SDK Exception : GoogleLogin(clientId, callback). java.lang.NoClassDefFoundError: Failed resolution of: LandroidX/credentials/GetCredentialResponse:
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
TheBackend.ToolKit.GoogleLogin.Android:GoogleLogin(String, GoogleLoginCallback)
TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin(GoogleLoginCallback)

위 댓글의 1.SignInWithGoogle 방식 실행 중 뜬 에러메시지 입니다.

확인 내용 안내드립니다.

  1. GameActivity 진입점을 사용하시면 구글 로그인2.0에서 에러가 발생하는 것으로 확인됩니다.
    구글 로그인 SDK 3.0을 사용하시면 정상적으로 로그인이 가능한 것으로 확인되니 참고하여 이용해 주시면 감사하겠습니다.

  2. GPGSV2는 GameActivity 진입점에서도 정상 동작합니다.
    Cancel 상태값은 GPGS와 연동된 계정이 허용된 계정이 아니어서 발생한 것으로 추측됩니다.
    구글 클라우드 플랫폼에서 APIs & Services => OAuth Consent Screen => Audience 이동 후, Test User에 테스트 계정을 등록하시거나 User Type을 External로 변경하셔서 외부계정이 접근가능하도록 변경해 주세요.
    image

  3. AuthorizeFederation api를 사용하여 인증할 때, FederationType 을 올바르게 넣어주셔야 합니다.
    구글 계정 로그인이면 FederationType.Google 로, GPGSV2면 FederationType.GPGS2 로 인자를 전달해주셔야 합니다.

  1. 사용한 것은 ‘BackendGoogleLogin-Android-3.0.0.unitypackage’ 입니다. 말씀하신 3.0 버전이 다른게 또 있는지?
  2. 현재 이렇게 설정되어 있고 저 계정으로 테스트 했습니다.
    image
  3. FederationType.Google 로 해도 에러메시지 : Bad Google Hash 라고 뜹니다.

3번 내용의 경우 콘솔 내 해시키 정보가 등록되지 못하여 발생하는 에러입니다.

콘솔 => 프로젝트 설정 메뉴 내 구글 해시키 정보를 입력하여 다시 시도해 주시면 감사하겠습니다.

네 Backend SDK 1.8.0 으로 다시 설치하고 1번과 3번 테스트를 다시 해봤습니다.
1번의 경우 그 에러메시지는 안나왔는데 여전히 Callback 응답이 들어오지 않습니다.
3번의 경우 BadUnauthorizedException, Bad Bad Google access Token 이라는 메시지가 뜨는 상황입니다.

EDM4U 사용 안하고 안드로이드 추가 플러그인 설치하는 방식으로 하여 문제 해결 했습니다

좋아요 1