게스트 구글 연동 문의

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

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

  • 뒤끝 SDK 버전 : 5.16.1
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

게스트 로그인
Backend.BMember.GuestLogin()

구글 로그인
TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin → Backend.BMember.AuthorizeFederation

게스트 계정 구글 연동
Backend.BMember.ChangeCustomToFederation

위 함수로 게스트 구글 계정 연동 작업을 진행하였는데,
이미 연동된 구글 계정 혹은 이미 생성 됐던 구글 계정에 구글 연동을 1회 시도 할 경우 이후에 다시 연동을 시도 해도 기본적으로 나와야 할 구글 이메일 선택 창이 뜨지 않고 있습니다. 이후 재접속을 해도 해당 게스트 계정으로 연동 시도 시 구글 이메일 선택 창이 뜨지 않는데 어느 부분을 수정 해야 하나요?

안녕하세요 개발자님,
위 말씀해주신 순서대로 게스트 계정의 페더레이션 전환을 진행하신게 맞으실까요?
잘못된 과정이 포함되어 있는 것으로 확인됩니다.

뒤끝에서는 하나의 계정으로만 페더레이션이 가능하기에 이미 연동이된 계정은 추가적인 연동이 불가합니다.

게스트 계정의 페더레이션 전환은 다음과 같은 과정으로 진행되어야 합니다.

게스트 로그인 / Backend.BMember.GuestLogin()
=> 구글 로그인 / TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin
=> 게스트 계정 페더레이션 전환 / Backend.BMember.ChangeCustomToFederation

Backend.BMember.AuthorizeFederation 함수는 페더레이션 회원가입/로그인 함수로
Backend.BMember.ChangeCustomToFederation 호출 전 해당 함수를 호출하는 경우 게스트 계정과 무관하게 신규 계정으로 가입이 이루어지게 됩니다. (이미 가입된 구글 계정이 있다면 해당 계정으로 로그인)

말씀하신대로 적용 되어있습니다.
Backend.BMember.AuthorizeFederation 함수는 그냥 바로 구글 계정으로 로그인 할때,
게스트 계정을 구글 계정으로 전환할 경우 Backend.BMember.ChangeCustomToFederation 을 호출 하고 있습니다.
위 설명은 각 로그인 케이스에 대한 설명입니다.
게스트 로그인만 할때,
구글 로그인만 할때,
게스트 계정을 구글 계정으로 전환 할 때 입니다.

게스트 계정을 구글 계정으로 전활 할 때는 Backend.BMember.AuthorizeFederation 을 거치지 않고
Backend.BMember.GuestLogin() 이후 Backend.BMember.ChangeCustomToFederation 을 호출 합니다.

TheBackend.ToolKit.GoogleLogin.Android.GoogleSignOut 함수 호출을 진행하고 계신지 확인 부탁드립니다.

아래 개발자 문서 하단에 해당 함수에 대한 내용 참고 부탁드립니다.

구글 로그인 이후 로그아웃 할 경우 호출하고 있는데,
게스트 계정을 구글 계정으로 전환 할 때 필요한 과정인가요?

게스트 계정을 구글 계정으로 전환하는 경우에도,
기존에 로그인했던 구글 계정 정보가 남아 있으면 계정 선택 창이 생략되고 자동으로 이전 계정으로 로그인되는 현상이 발생할 수 있습니다.

이 현상을 방지하고, 항상 구글 이메일 선택 창이 뜨도록 하려면
구글 로그인 후 의도적으로 로그아웃을 시도하여 로그인 정보를 초기화해 주신 후 새로운 구글 로그인이 진행되어야 합니다.

그렇다면 연동 작업을 요청 하기 전에 구글 로그인 여부와 상관없이 무조건 호출해도 괜찮나요?

구글 로그인을 진행한 후 로그아웃이 호출이 되어야합니다.

구글 로그인 => 구글 로그아웃 => 다시 구글 로그인 과정이 필요합니다.
이 세 과정이 진행된 후 뒤끝의 함수를 호출해주시면 됩니다.

그럼 제가 처음 문의 드렸던 내용대로
구글 로그인을 시도한 적 없는 상태에서

게스트 로그인 → 구글 연동 요청 (이전에 이미 생성 됐던 이메일) → 구글 연동 실패 → 연동 재 요청 (구글 이메일 선택창 뜨지 않음)

위와 같은 현상이 발생해서 문의 드렸는데,
이 과정에서 구글 연동이 실패할 경우 실패한 해당 구글 계정으로 강제 로그인 이후 다시 로그아웃을 진행한 후 연동을 재 요청해야한다는 말씀이신가요?

게스트 로그인 → 구글 연동 요청 (이전에 이미 생성 됐던 이메일)

이 과정에서는 계정선택 창이 뜬것이 맞다면,
과정에서 뒤끝이 아닌 '구글 로그인’은 진행이 이루어진 상황이기에 재 요청 시 선택창이 뜨지 않는 것입니다.

뒤끝 로그인이 아닌 '구글 로그인’인 점 참고 부탁리며,
한번 연동된 뒤끝 계정으로 구글 계정은 재연동이 불가합니다, 탈퇴 전에는 새로운 뒤끝 계정에 연동할 수 없습니다.

그렇다면 과정이 구글 로그인을 먼저 요청한 후 성공할 경우 페더레이션 전환이 이루어진다는 말씀이신가요?

그게 맞다면 구글 연동을 진행 하기 전에 페더레이션이 가능한지 여부를 미리 알 수 있는 방법은 없나요?

커스텀 계정의 페더레이션 연동 과정은 다음과 같습니다.

  1. 게스트/커스텀 로그인
  2. 구글 로그인
  3. ChangeCustomToFederation 함수 호출

구글 로그인은 뒤끝의 로그인이 아닌 구글 계정의 로그인 정보를 받아오기 위한 과정으로
페더레이션 가능 여부를 사전에 확인은 불가합니다.

ChangeCustomToFederation 함수 호출 시 연동이 가능한 상황이라면 게스트/커스텀 계정이 페더레이션 계정으로 전환되며,

이미 구글 계정이 뒤끝 계정으로 연동되어 생성이 이루어진 상황이라면

statusCode : 409
errorCode : DuplicatedParameterException
message : Duplicated federationId, 중복된 federationId 입니다

위 에러가 발생해 실패하게 됩니다.

이 때 다른 구글 계정으로 선택창을 띄워 재연동을 해주시고자 하는 경우라면 아래와 같이 구성되어야 합니다.

  1. 게스트/커스텀 로그인
  2. 구글 로그인
  3. ChangeCustomToFederation 함수 호출
  4. 이미 연동된 계정으로 에러 발생
  5. 구글 로그아웃
  6. 구글 재로그인
  7. ChangeCustomToFederation 함수 재호출

감사합니다 말씀 하신 대로 적용 시 정상 작동 하는 것 확인 했습니다.

추가로

  1. 게스트 로그인
  2. 구글 연동 (성공)
  3. 로그아웃
  4. 다른 게스트 계정 새로 생성

접속을 끊지 않고 유지한 채로 위와 같은 방법으로 테스트 시에

로그인이 실패했습니다. : StatusCode : 401
ErrorCode : BadUnauthorizedException
Message : bad customId, 잘못된 customId 입니다

에러가 발생합니다. 재접속 이후에 게스트 계정 생성 시도 시에도 마찬가지로 동일한 에러가 발생합니다.
데이터, 캐시 삭제 이후에 정상 작동하는데 어떤 부분을 살펴봐야할까요?
로그아웃 시에는 GoogleSignOut 과 Backend.BMember.Logout 를 호출하고 있습니다.

해당 에러는 기존의 게스트 계정 정보로 로그인을 시도하며 발생하는 에러로

게스트 계정의 페더레이션 연동 이후에 해당 기기에서 새로운 게스트 계정을 생성하시고자 하는 경우는,
로컬에 존재하는 기존 게스트 계정을 삭제해주어야 합니다.

Backend.BMember.DeleteGuestInfo(); 함수 사용이 필요하니 아래 문서를 참고하여 주세요.

답변 감사드립니다.
모든 로그인 케이스 정상 작동 합니다.

좋아요 1