GPGS V1으로 로그인한 유저가 존재하는 상황에서 GPGS 11.01버전으로 업그레이드 한 경우, 뒤끝의 Google Login SDK를 이용해 로그인을 구현 하라고 답글 주셨는데 그렇게 될 경우 GPGS v2가 아닌 뒤끝 Google Login SDK 로그인 기능을 구현해야 된다는 말씀이실까요?
GPGS V1을 사용해서 아래와 같이 구현된 코드가 있을 경우
public void GPGSLogin(Action<BackendReturnObject> ac_backendsuccess)
{
#if UNITY_ANDROID
// 이미 로그인 된 경우
if (Social.localUser.authenticated == true)
{
BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
ac_backendsuccess?.Invoke(BRO);
}
else
{
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication)
}
수정하게 될 경우
public void GPGSV2_Login(Action<BackendReturnObject> ac_backendsuccess)
{
#if UNITY_ANDROID
// 이미 로그인 된 경우
if (Social.localUser.authenticated == true)
{
BackendReturnObject BRO = TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin(true, GoogleLoginCallback); ;
}
else
{
Social.localUser.Authenticate((bool success) => {
if (success)
{
// 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입 요청
BackendReturnObject bro = Backend.BMember.GetGPGS2AccessToken(google_code);
if (bro.IsSuccess())
{
string accessToken = googleCallback.GetReturnValuetoJSON()["access_token"].ToString();
ac_backendsuccess?.Invoke(bro);
}
}
else
{
// 로그인 실패
Debug.Log("Login failed for some reason");
}
});
}
#endif
}
private void GoogleLoginCallback(bool isSuccess, string errorMessage, string token)
{
if (isSuccess == false)
{
Debug.LogError(errorMessage);
return;
}
Debug.Log("구글 토큰 : " + token);
var bro = Backend.BMember.AuthorizeFederation(token, FederationType.Google);
Debug.Log("페데레이션 로그인 결과 : " + bro);
if (bro.isSuccess())
{
ac_backendsuccess?.Invoke(bro);
}
}
void ProcessAuthentication(SignInStatus status)
{
if (status == SignInStatus.Success)
{
GetAccessCode();
}
}
public void GetAccessCode()
{
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code => {
Debug.Log("구글 인증 코드 : " + code);
Backend.BMember.GetGPGS2AccessToken(code, googleCallback =>
{
Debug.Log("GetGPGS2AccessToken 함수 호출 결과 " + googleCallback);
string accessToken = "";
if (googleCallback.IsSuccess())
{
accessToken = googleCallback.GetReturnValuetoJSON()["access_token"].ToString();
}
Backend.BMember.AuthorizeFederation(accessToken, FederationType.GPGS2, callback =>
{
Debug.Log("뒤끝 로그인 성공했습니다. " + callback);
});
});
});
}
처럼 구현해야 된다는 말씀일까요?