페더레이션 로그인시 기존 커스텀으로 로그인한 유저 정보를 가져올 수 없는건가요??

페더레이션 로그인시 기존 커스텀으로 로그인한 유저 정보를 가져올 수 없는건가요??

안녕하세요.

한 기기에서 커스텀 로그인 - 페데레이션 로그인을 할 경우, 커스텀 로그인 한 유저정보를 가져올 수 있나는 질문이신가요?

커스텀으로 로그인 하고 페데레이션으로 로그인을 할 경우, 커스텀에서 페데레이션의 정보가 덮어씌워지는게 아니라 커스텀 로그인 한 유저는 로그아웃 되고 아예 다른 유저로 로그인하는 거라고 생각하시면 됩니다.

만약 다시 커스텀 로그인한 유저의 정보를 보고 싶을 경우, 다시 원래 있던 아이디와 비밀번호로 커스텀 로그인 하시면 됩니다.

계정 연동 기능은 해결 방법이 없나요?(게스트 로그인 후 게임 중에 페이스북 계정으로 연동 시키기)

게스트 아이디 -> 페데레이션 아이디로 연동하는 방법은 아래 내용을 참고해주세요.

커스텀 아이디에서 페더레이션 아이디로 변경

해당 듀토리얼 보고 테스트를 했는데 기존 커스텀으로 플레이한 정보를 가져오지 못하고 있더라구여
그래서 계정이 새롭게 생성되는건지 여쭙니다.

해당 페이스북 아이디로 등록된 뒤끝의 아이디가 없을 경우, 커스텀 로그인 후에 페데레이션 로그인으로 전환 함수를 사용하면 해당 커스텀 유저가 페데레이션 로그인 유저로 전환됩니다.

이 경우, 기존 정보는 유지됩니다.

허나 페데레이션 아이디(페이스북 아이디)로 로그인 한 유저가 있을 경우, 페데레이션 로그인으로 변경을 할 때, 오류가 발생하며 전환이 되지 않습니다.

만약 전환 후에도 새로운 유저인것 같은 경우,
전환도중에 이미 등록된 페이스북아이디가 있어서 오류가 발생하여 전환이 되지 않아 새로운 정보가 씌여진 것처럼 보일 수 있으니,

ChangeCustomToFederation()함수의 리턴값(성공이 발생하는지), 그리고 콘솔에서 해당 커스텀 로그인 유저의 가입유형이 custom이 아닌 facebook으로 바뀌어 있는지 확인해주시면 감사하겠습니다.

혹시 기존에 커스텀로그인을 했던 유저인지 확인하는 방법이 있을까요?

추가적으로 회원아이디를 가져올 수 있는 방법이 있을까요?

현재는 기존에 페데레이션 유저가 커스텀 로그인 유저였는지 확인하는 방법과,
게임 내에서 회원아이디를 가져오는 방법은 제공하고 있지 않습니다.

문제를 해결 하고 있지 못해서 질문드립니다…
public void onClickCustomLogin()
{
backendReturnObject = Backend.BMember.CustomSignUp(SystemInfo.deviceUniqueIdentifier, SystemInfo.deviceUniqueIdentifier, “SignUp”);
if(backendReturnObject.IsSuccess() == true)
{
Debug.Log(“CustomLogin”);
isGuest = true;
login();
}
else
{
if (backendReturnObject.GetStatusCode() == “409”)
{
login();
isGuest = true;
Debug.Log(“CustomLogin”);
}
}
}

private void login()
{        
    backendReturnObject = Backend.BMember.CustomLogin(SystemInfo.deviceUniqueIdentifier, SystemInfo.deviceUniqueIdentifier, "Login");
    
    if (backendReturnObject.IsSuccess() == true)
    {
        //isAliveToken();
    }
    else
    {
        Invoke("login", 3f);
    }
}

이런식으로 로그인후에 InitFacebook() 함수를 호출하여 페이스북으로 로그인 타입을 변경하려고했습니다.
그런데 기존에 있던 정보는 다 날라가고 새로운 계정이 생성되었습니다. 혹시 누락된 부분이 있을까요?

public void InitFacebook()
{
var perms = new List() { “public_profile”, “email” };
FB.LogInWithReadPermissions(perms, FederationLogin_Facebook);
}

private void FederationLogin_Facebook(ILoginResult result)
{
    if (FB.IsLoggedIn)
    {
        var token = AccessToken.CurrentAccessToken;
        string facebookToken = token.TokenString;

        BackendReturnObject backEnd = Backend.BMember.AuthorizeFederation(facebookToken, FederationType.Facebook, "FacebookLogin");
        if (backEnd.IsSuccess())
        {
            Debug.Log("Park. Facebook Login is Complete");
            BackendReturnObject bro = Backend.BMember.ChangeCustomToFederation(facebookToken, FederationType.Facebook);
            
            if (bro.IsSuccess())
            {
                CGameManager.Instance.setGameDataInit();
            }
            else
            {
                if (bro.GetStatusCode() == "400")
                {
                    CGameManager.Instance.setGameDataInit();
                }
                Debug.Log("error = " + bro.GetErrorCode());
            }
        }
        else
        {
            Debug.Log("Park. Facebook Login is Fail" + backEnd.GetErrorCode());
        }           
    }
    else
    {
        Debug.Log("Park. Facebook Login Cancel");
        //로그인 취소 팝업
    }
}

현재 개발자님이 작성하신 코드는 커스텀 로그인(CustomLogin) - 페데레이션 로그인(AuthorizeFederation) - 페데레이션 연동(ChangeCustomToFederation)의 프로세스입니다

이럴 경우, 커스텀 로그인한 유저가 페데레이션 로그인을 할 때, 로그아웃 당하고, 그 페데레이션 아이디에 페데레이션 연동을 하게 되는 형태입니다.

커스텀 로그인에서 페데레이션 로그인으로 전환을 하실 경우,
커스텀 로그인(CustomLogin) - 페데레이션 전환(ChangeCustomToFederation)의 프로세스로, 중간에 있는 페데레이션 로그인(AuthorizeFederation)을 제외하셔야 합니다.