- 뒤끝 SDK 버전 : 5.11.1
- 프로젝트명 : LoginTest
- 스테이터스 코드 :
using UnityEngine;
using BackEnd;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using System;
public class BackendManager : MonoBehaviour
{
LoginScene _loginScene;
void Start()
{
_loginScene = GameObject.Find("@LoginScene").GetComponent<LoginScene>();
Init();
}
void Init()
{
var bro = Backend.Initialize(true);
if (bro.IsSuccess())
{
Debug.Log($"초기화 성공 : {bro}");
_loginScene.text = $"초기화 성공 : {bro}";
}
else
{
Debug.Log($"초기화 실패 : {bro}");
_loginScene.text = $"초기화 실패 : {bro}";
}
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration
.Builder()
.RequestServerAuthCode(false)
.RequestEmail()
.RequestIdToken()
.Build();
//커스텀된 정보로 GPGS 초기화
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true;
//GPGS 시작.
PlayGamesPlatform.Activate();
}
public void GPGSLogin()
{
// 이미 로그인 된 경우
if (Social.localUser.authenticated == true)
{
_loginScene.islogin = true;
BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
}
else
{
Social.localUser.Authenticate((bool success) =>
{
Debug.Log($"구글로그인 성공 여부는 {success}입니다");
if (success)
{
// 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입 요청
//Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "GPGS로 가입함");
Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "GPGS로 가입함", callback =>
{
_loginScene.islogin = true;
Debug.Log("구글로 뒤끝 로그인 성공");
_loginScene.text = "구글로 뒤끝 로그인 성공";
});
}
else
{
// 로그인 실패
Debug.Log("로그인 실패");
_loginScene.text = "로그인 실패";
}
});
}
}
// 구글 토큰 받아옴
string GetTokens()
{
if (PlayGamesPlatform.Instance.localUser.authenticated)
{
// 유저 토큰 받기 첫 번째 방법
string _IDtoken = PlayGamesPlatform.Instance.GetIdToken();
// 두 번째 방법
// string _IDtoken = ((PlayGamesLocalUser)Social.localUser).GetIdToken();
Debug.Log($"_IDtoken값은 {_IDtoken}입니다");
_loginScene.text = $"_IDtoken값은 {_IDtoken}입니다";
return _IDtoken;
}
else
{
Debug.Log("접속되어 있지 않습니다. PlayGamesPlatform.Instance.localUser.authenticated : fail");
_loginScene.text = "접속되어 있지 않습니다. PlayGamesPlatform.Instance.localUser.authenticated : fail";
return null;
}
}
public void GuestLogin()
{
/*
Backend.BMember.GuestLogin("게스트 로그인으로 로그인함", callback => {
if (callback.IsSuccess())
{
Debug.Log("게스트 로그인에 성공했습니다");
Managers.Scene.LoadScene(Define.Scene.Lobby);
}
});
*/
BackendReturnObject bro = Backend.BMember.GuestLogin("게스트 로그인으로 로그인함");
if (bro.IsSuccess())
{
_loginScene.islogin = true;
Debug.Log("게스트 로그인에 성공했습니다");
_loginScene.text = "게스트 로그인에 성공했습니다";
}
}
public void CheckUserInBackend()
{
BackendReturnObject BRO = Backend.BMember.CheckUserInBackend(GetTokens(), FederationType.Google);
Debug.Log(BRO);
Debug.Log(GetTokens());
}
}
- 에러 코드 :
- 에러 메시지 :
로그캣을 보면 GetTokens()에서 정상적으로 토큰을 받아오는 것으로 확인이 되는데 이후 GPGSLogin()에서 Backend.BMember.AuthorizeFederation()의 콜백 부분이 전혀 실행되지 않습니다.
CheckUserInBackend()로 확인을 해봐도 계속 statusCode : 204로만 나오는 걸 보면 페더레이션이 아예 진행되지 않는 것 같습니다. 다른 문의글들을 보고 해결을 해보려고 해도 도저히 안되네요ㅜ 어떻게 해야 할까요?