중복 로그인 관련 문의

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

  • 뒤끝 SDK 버전 : 최신
  • 프로젝트명 : 다크니스

안녕하세요. 중복 로그인 관련 문의드립니다.
현재 뒤끝 SDK에서 안내하고 있는 중복 로그인 에러 코드는
401로 GetMessage().Contains(“refreshToken”) 으로
구분하고 있는데요.

게임 진입 시 뒤끝 토큰을 통한 자동 로그인 부분에서
해당 계정의 아이디를 삭제하고 게임 진입을 시도할 경우 accessToken 에러가 아닌
refreshToken에러가 나오면서 중복 로그인 유저와 구분이 안됩니다.
(*중복 로그인 유저는 안내문과 함께 앱을 종료시키는 상황)

현재 게임을 진행 중인 상태에서 서버에 5분마다 요청을 보내는 방법으로
token을 확인하는데요. 여기서도 혹시 중복 로그인이 감지될 경우
refreshToken 에러가 아닌 bad accessToken 에러가 나타나는지요.

확인 부탁드립니다.

첫번째 질문처럼 자동 로그인 부분에서는 그러면 중복 로그인 감지를 refreshTorken이 아닌 bad accessToken으로 잡아야 하나요?

안녕하세요 개발자님,
말씀해주신 아이디 삭제의 경우가 콘솔에서 아이디를 삭제한 경우를 말씀하시는 것이 맞으실까요?
만약 맞다면, 아이디 삭제 시 연결된 서버의 액세스토큰 정보 또한 삭제가 이루어지게 됩니다.
이 때, 기기에는 액세서토큰이 남아있기에 해당 상황이 발생하게 됩니다.

이는 특수한 상황의 경우이기에
중복 로그인에 대해서는 말씀하신것 처럼 refreshToken 에러로 구분을 해주시면 됩니다.

이미 로그인을 한 상태에서 주기적인 요청으로 token을 확인할 때
중복 로그인으로 토큰이 만료된 상태에서 요청을 진행하는 되는 경우는 refreshToken 에러가 아니라 아래와 같은 에러가 발생하게 됩니다.

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

자동 로그인 토큰에서 에러 발생 시 특수한 상황이기 때문에 그냥 refreshToken으로 내버려 두면 되는 것이고, 게임 진행 도중에 중복 로그인 감지는 'accessToken’으로 확인하면 된다는 말씀이신거죠?

좋아요 1

생각해보니 어차피 중복 로그인 진행 시, 기존 로그인 계정에서 감지가 되기 때문에 로그인 단계에서 구분할 필요는 없겠네요. 앞서서 구분하는 문제는 삭제하였고, 게임 진행 도중 중복 로그인 감지는 'accessToken’으로 구분하니 잘 걸립니다. 감사합니다.

추가 안내드립니다.
bad accesstoken 에러는 중복로그인 외에 토큰 만료의 경우도 발생할 수 있는 에러입니다.
아래를 참고해주시면 감사하겠습니다. :D

  • 토큰 함수 외 다른 함수에서 bad accesstoken 발생 → 다른 기기에서 로그인 or 24시간 토큰 만료로 의심
  • 이 때 토큰 갱신 혹은 토큰 로그인 시도
    → 함수 요청에 성공한 경우라면 단순히 24시간 경과로 인한 토큰 만료 상황(24시간 토큰 만료)
    → 함수 요청에 실패한 경우라면 중복 로그인으로 인해 리프레시 토큰이 사라진 경우이기에 재로그인 필요
  • 특이 사항 → 콘솔에서 삭제할 경우, 활성화된 리프레시 토큰이 삭제되므로 토큰 로그인 시 bad refreshtoken 발생

추가적으로 5분 주기로 단순히 token 확인을 위해 불필요한 호출을 진행하는 방식은 서버 이용량을 증가시키는 케이스입니다.
중복로그인으로 인한 토큰의 만료는 일반적인 요청에서도 확인이 가능하기에(토큰 함수 외 다른 함수에서 bad accesstoken 발생 시 중복 로그인 의심) 불필요한 호출을 하지 않도록 구성하고
24시간 경과로인해 토큰이 만료되는 경우를 대비하기 위한 경우라면 12시간 정도 주기로 토큰 갱신 함수등을 요청해주시는 로직으로 구성해주시는 것이 좋습니다. :D

네 현재 8시간마다 토큰 갱신을 하고 있으며, token을 5분 주기로 확인하는 것은 따로 코드가 있는게 아니라, 자동 저장 주기입니다 :) 답변 감사드립니다.