회원가입 / 로그인

뒤끝 SDK는 구글, 페이스북, 커스텀(아이디, 패스워드) 가입과 로그인을 지원합니다. 구글, 페이스북의 페더레이션 인증은 이곳에서 확인하실 수 있습니다.
access_token 또는 refresh_token은 회원가입 또는 로그인을 통해 획득할 수 있습니다.
유효한 뒤끝의 access_token 또는 refresh_token가 SDK 내부에 존재할 때, 다른 기능을 수행할 수 있습니다.

  • access_token : 1일 동안 이용 가능한 토큰입니다. 1일이 지나면 만료되어 사용하지 못합니다.
  • refresh_token : 1년 동안 이용 가능한 토큰입니다. 1년이 지나면 만료되어 사용하지 못합니다.

커스텀 회원가입 / 로그인

회원가입이 성공하면 SDK 내부에서 로그인을 자동적으로 처리하며 기기 내부 PlayerPrefs에 access_token과 refresh_token을 저장합니다.

주의
  • 동기 방식의 페더레이션 인증을 사용하는 경우에는 Update()에서 SaveToken(BackendReturnObject)를 호출하는 경우 오류를 유발합니다.
  • 비동기 방식은 메인 쓰레드가 아니기 때문에 리턴되는 BackendReturnObject를 Update() 문에서 SaveToken(BackendReturnObject)를 통해 처리해 주어야 합니다.

동기

// 커스텀 가입
CustomSignUp( String id, String password, String etc = "" ) -> BackendReturnObject
// 커스텀 로그인
CustomLogin ( String id, String password, String etc = "" ) -> BackendReturnObject

// example
// 동기 메소드는 SaveToken이 자동으로 실행됩니다. (호출하는 경우 에러 발생)
// 커스텀 가입
Backend.BMember.CustomSignUp ( "id" , "password" );
// 커스텀 로그인
Backend.BMember.CustomLogin( "id", "password" );

비동기

// 커스텀 가입
CustomSignUp( String id, String password, Function callback ) -> void
CustomSignUp( String id, String password, String etc, Function callback ) -> void
// 커스텀 로그인
CustomLogin ( String id, String password, Function callback ) -> void
CustomLogin ( String id, String password, String etc, Function callback ) -> void

// example
BackendReturnObject bro = new BackendReturnObject();
bool isSuccess = false;
// 비동기 메소드는 update()문에서 SaveToken을 꼭 적용해야 합니다.
void update() 
{
    if(isSuccess) 
    {
        // SaveToken( BackendReturnObject bro ) -> void
        // 비동기 메소드는 update()문에서 SaveToken을 꼭 적용해야 합니다.
        BackendReturnObject saveToken = Backend.BMember.SaveToken(bro);
        if (saveToken.IsSuccess())
        {
          Debug.Log("로그인 성공");
        }
        else
        {
          Debug.Log("로그인 실패: " + saveToken.ToString());
        }
        isSuccess = false;		
        bro.Clear ();
    }
}
// 커스텀 가입
Backend.BMember.CustomSignUp ( "id" , "password", ( callback ) => 
{
	isSuccess = true;
	bro = callback;
});
// 커스텀 로그인
Backend.BMember.CustomLogin( "id", "password", (callback) => 
{
	isSuccess = true;
	bro = callback;
});

Parameters

ValueTypeDescription
idString커스텀 가입/로그인을 진행할 때 필요한 아이디
passwordString커스텀 가입/로그인을 진행할 때 필요한 비밀번호
etcString(Optional) 부가적으로 저장하고 싶은 정보

Error cases

  • CustomSignUp - 중복된 customId 가 존재하는 경우
    statusCode : 409
    errorCode : DuplicatedParameterException
    message : Duplicated customId, 중복된 customId 입니다

  • CustomLogin - 존재하지 않는 아이디의 경우
    statusCode : 401
    errorCode : BadUnauthorizedException
    message : bad customId, 잘못된 customId 입니다

  • CustomLogin - 비밀번호가 틀린 경우
    statusCode : 401
    errorCode : BadUnauthorizedException
    message : bad customPassword, 잘못된 customPassword 입니다

  • CustomLogin - 차단당한 유저
    statusCode : 403
    errorCode : 콘솔에서 입력한 차단된 사유
    message : forbidden blocked user, 금지된 blocked user 입니다

  • 출시설정이 테스트 인데 AU가 10을 초과한 경우
    statusCode : 403
    errorCode : ForbiddenException
    message : Forbidden Active User(로그인에 성공한 상태의 유저) exceed 10., 금지된 Active User(로그인에 성공한 상태의 유저) exceed 10.

    해당 에러가 발생하는 경우 스토어 출시 설정테스터 토큰 문서를 참고하세요

뒤끝 AccessToken 로그인

기존에 로그인했던 유저가 기기에 남아있는 PlayerPrefs에 저장된 뒤끝 AccessToken을 통해 로그인합니다.
뒤끝 SDK의 로그인 함수는 기기 내부에 기한이 만료되지 않은 access_token 혹은 refresh_token이 필요합니다.
Login에 성공하면 access_tokenrefresh_token을 새 값으로 업데이트를 합니다.

주의
  • 동기 방식의 페더레이션 인증을 사용하는 경우에는 Update()에서 SaveToken(BackendReturnObject)를 호출하는 경우 오류를 유발합니다.
  • 비동기 방식은 메인 쓰레드가 아니기 때문에 리턴되는 BackendReturnObject를 Update() 문에서 SaveToken(BackendReturnObject)를 통해 처리해 주어야 합니다.

동기

LoginWithTheBackendToken() -> BackendReturnObject

// example
// 동기 메소드는 SaveToken이 자동으로 실행됩니다. (호출하는 경우 에러 발생)
Backend.BMember.LoginWithTheBackendToken();

비동기

LoginWithTheBackendToken() -> void

// example
BackendReturnObject bro = new BackendReturnObject();
bool isSuccess = false;
// 비동기 메소드는 update()문에서 SaveToken을 꼭 적용해야 합니다.
void update(){
    if(isSuccess)
    {
        // 비동기 메소드는 update()문에서 SaveToken을 꼭 적용해야 합니다.
        // SaveToken( BackendReturnObject bro ) -> void
        BackendReturnObject saveToken = Backend.BMember.SaveToken(bro);
        if (saveToken.IsSuccess())
        {
          Debug.Log("로그인 성공");
        }
        else
        {
          Debug.Log("로그인 실패: " + saveToken.ToString());
        }
        isSuccess = false;
        bro.Clear ();
    }
}
// 뒤끝 AccessToken 로그인 
Backend.BMember.LoginWithTheBackendToken( (callback) => 
{ 
	isSuccess = true;
	bro = callback;
});

Error cases

  • 1년뒤 refresh_token이 만료된 경우
    statusCode: 410
    errorCode: GoneResourceException,
    message: Gone expired refreshToken, 사라진 expired refreshToken 입니다.

  • 다른 기기로 로그인 하여 refresh_token이 만료된 경우
    statusCode : 401
    errorCode : BadUnauthorizedException
    message : bad refreshToken, 잘못된 refreshToken 입니다

  • 차단당한 유저
    statusCode : 403
    errorCode : 콘솔에서 입력한 차단된 사유
    message : forbidden blocked user, 금지된 blocked user 입니다

  • 출시설정이 테스트 인데 AU가 10을 초과한 경우
    statusCode : 403
    errorCode : ForbiddenException
    message : Forbidden Active User(로그인에 성공한 상태의 유저) exceed 10., 금지된 Active User(로그인에 성공한 상태의 유저) exceed 10.

    해당 에러가 발생하는 경우 스토어 출시 설정테스터 토큰 문서를 참고하세요

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

뒤끝 SDK에서 커스텀으로 가입한 아이디를 페더레이션 아이디로 변경하는 기능을 제공합니다.
커스텀 유저가 로그인을 진행한 후에 ChangeCustomToFederation( federationToken, type )을 진행하면 유저는 페더레이션으로만 로그인이 가능합니다.
ChangeCustomToFederation에 필요한 federationTokentype은 페더레이션 인증 예제에서 더 자세하게 설명 되어있습니다.

동기

ChangeCustomToFederation( String federationToken, FederationType type ) -> BackendReturnObject

//example
Backend.BMember.ChangeCustomToFederation( federationToken, FederationType.Google );

비동기

ChangeCustomToFederation( String federationToken, FederationType type, Function callback ) -> void

//example
Backend.BMember.ChangeCustomToFederation( federationToken, FederationType.Google, isComplete => {
	//이후 처리
});

Parameters

ValueTypeDescription
federationTokenString페더레이션 access token
typeFederationType (enum)페더레이션의 종류. FederationType.Google 혹은 FederationType.Facebook

Return BROs

  • 성공
    statusCode : 204
    message : Success

  • 이미 ChangeCustomToFederation 완료 되었는데 다시 시도한 경우
    statusCode : 400
    errorCode : BadParameterException
    message : bad type, 잘못된 type 입니다

  • 이미 Federation token으로 가입되어 있는 경우
    statusCode : 409
    errorCode : DuplicatedParameterException
    message : Duplicated federationId, 중복된 federationId 입니다

  • customLogin 하지 않은 상황에서 시도한 경우
    statusCode : 400
    errorCode : UndefinedParameterException
    message : undefined access_token, access_token을(를) 확인할 수 없습니다