기기 이동 토큰 문

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

  • 뒤끝 SDK 버전 : 5.4.3
  • 프로젝트명 : 푸른달

안녕하세요. 문의 할 내용이 있습니다. 현재 태블릿에서 게임을 이용하다가 핸드폰에서 게임을 실행하여 접속하게 되면 ‘401 bad refreshToken’ 에러가 발생합니다. 문제는 아래 코드를 이용해 태블릿에 계정을 로그아웃 했는데도 불구하고 해당 오류가 발생한다는 것인데요.

if (PlayGamesPlatform.Instance.IsAuthenticated() == true)
					{
						PlayGamesPlatform.Instance.SignOut();
					}

					Backend.BMember.Logout();

테스트한 계정은 구글 계정으로 Backend.BMember.Logout()을 호출했음에도 불구하고,
핸드폰으로 게임 진행 시 401 에러가 발생한다는 것입니다. 태블릿에 게임을 삭제하고
핸드폰에도 게임을 삭제 후 재시작하면 접속이 되기는 합니다.

해당 문제 어떻게 해결하면 될까요?

안녕하세요 개발자님.
핸드폰에서 이전에 접속하여 남아있는 토큰 정보로 로그인이 시도되면서 에러가 발생하는 것으로 예상됩니다.

현재 게임 실행 이후 로그인 로직 상
토큰 로그인이 우선적으로 진행되게 되어있는 경우, 에러가 발생한다면 페더레이션 로그인이 진행되도록 로직을 구성하여 이용해 주시면 감사하겠습니다.

안녕하세요. 말씀해주신 내용과 같이 GPGS 로그인이 진행되도록 수정하였습니다. 그렇다면 만약 다른 유저가 중복 로그인을 시도한 경우, 페더레이션 계정일 경우 GPGS 로그인이 진행되어 게임 접속이 될텐데, 이미 접속중인 계정에는 에러 코드가 호출되나요?

안녕하세요 개발자님

뒤끝으로 로그인 시에는 24시간동안 액세스토큰이 발급됩니다.

해당 액세스토큰을 통해 서버에 접근을 하게 되고, 24시간이 지나거나 다른 유저가 로그인을 하여 해당 유저에게 새로운 액세스토큰이 발행되는 경우 아래와 같은 에러가 발생합니다.

  • 유저의 Access Token이 올바르지 않거나 만료된 경우(로그인 후 하루 이상 경과한 경우)
    statusCode : 401
    errorCode : BadUnauthorizedException
    message : bad accessToken, 잘못된 accessToken입니다

statusCode : 401
errorCode : BadUnauthorizedException
message : bad bad,accessToken,잘못된,accessToken,입니다, 잘못된 bad,accessToken,잘못된,accessToken,입니다 입니다

따라서 접속중인 계정에서 다른 기기로 유저가 로그인을 했다면 토큰이 재발급되어 접속중인 유저는 위와같은 에러가 발생하게 됩니다.

또한 로그인이 될 경우, 액세스 토큰과 리프레시 토큰 모두 재발급되기에 다른 계정들에서 Backend.BMember.LoginWithTheBackendToken에서도 에러가 발생합니다.

답변 감사합니다. 기존 접속중인 캐릭터는 401 에러가 리턴된다는 것이군요. 근데 토큰 유효성이 24시간이라면, 24시간 넘게 방치를 진행할 경우 마찬가지로 401 에러가 리턴된다는 것인데 그렇다면 중간에 Backend.BMember.RefreshTheBackendToken(); 해당 함수를 호출하면 되는 건가요?

넵 토큰 갱신 없이 24시간이 지날 경우 에러가 발생하게 됩니다.

해당 에러가 발생하지 않으려면 아래의 로직들을 추가해주시기 바랍니다.

  • 해당 에러가 발생할 때 Backend.BMember.RefreshTheBackendToken()을 한번 시도해주시는 로직 -성공 시, 지속적으로 다음 호출에는 에러가 발생하지 않습니다.
  • 로그인 이후 6시간마다 Backend.BMember.RefreshTheBackendToken()를 호출해주시는 로직