인트로 화면 문의

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

검토 반려 사유로 인트로 화면 추가가 필요하다는 답변을 받았습니다.

인트로 화면에서 ‘시작하기’ 버튼을 눌러 appLogin을 진행한 사용자는 이후 재진입 시 인트로 화면을 다시 노출하지 않으려고 하는데요.
앱 실행 시점에 해당 사용자가 이전에 appLogin을 진행했는지 여부를 최초 진입에서 확인할 수 있는 방법(또는 기준 값)이 있을까요?

appName (선택)

self-care

안녕하세요 :slight_smile:
토스 로그인 연동 여부 확인 함수 (getIsTossLoginIntegratedService)를 사용해주시면 될 것 같아요

그러면 처음 진입할때 getIsTossLoginIntegratedService 호출 하고 false면 인트로 true면 appLogin 진행하면 되는걸까요?

@Dylan 님 안녕하세요

답글 보다가 문의사항이 있어 댓글 남깁니다.

getIsTossLoginIntegratedService 로 로그인 연동 여부를 확인하는 함수인건 알겟는데

가이드에 보면

“이 함수는 주로 토스 로그인 → 게임 로그인으로 마이그레이션하는 과정에서 사용돼요.”

“마이그레이션 분기 처리 용도로만 사용하고, 로그인 여부 판단 용도로 사용하지 마세요.”

라고 기재되어있습니다.

@mingg 님께서 문의하신 것처럼 이 함수를 토스 로그인 연동했던 유저인지 판단하는 함수로 사용해도 문제가 없는게 맞나요?

나중에 게임에서만 작동하게 수정하거나…변경될 소지가 있는것은 아닌거죠?

아래와 같이 반환될거에요 :slight_smile:

  • 연동 안된 미니앱 → error를 반환
    • `@throw {message: “oauth2ClientId 설정이 필요합니다.”}
  • 토스로그인 연동된 유저 → true
  • 토스 로그인 연동 안된 유저 → false

@Albert 안녕하세요 :slight_smile:
현재는 수정 계획은 없습니다 :man_bowing:

말씀주신 문구는 오해의 소지가 있는 것 같아요. 수정해두겠습니다

1개의 좋아요

네 확인 감사드립니다. 하나만 더 여쭙니다.

일단 “연동 안된 미니앱 = 앱인토스 콘솔에서 로그인 설정 같은것이 안되어있는 미니앱” 으로 이해했고요,
이 함수는 자연인 유저(홍길동)와 해당 미니앱(미니앱A) 간의 연동여부를 내려주는게 맞는거죠?

즉 홍길동이가 디바이스를 변경하여 재접속한 경우에도 이미 연동했던 유저라면 true로 내려주는걸로 이해했습니다.

다만 자연인 홍길동이가 토스 자체를 탈퇴해서 토스를 재가입한 경우 이때는 false가 내려올거라고 생각하는데 맞나요?
(물론 토스의 탈퇴과정에서 콜백을 통해 미니앱이 탈퇴처리를 하겠지만, 만약에 어떤 통신상의 누락된 경우 토스에서 탈퇴를 막지는 않을거란 생각이 들어서요.)

약관 동의 전에 인트로 화면이 나와야하는데 최초로 앱에 진입하면 FALSE로 내려오는거 맞을까요?

약관 및 개인정보 처리에서 ‘토스로그인’ 동의 철회하고 QR로 진입해도 true로 내려옵니다…

개발환경에서 테스트 해보고싶은데 샌드박스에서 약관 동의 화면 띄울 수 있는 방법도 있을까요?

이렇게 구현하고싶습니다 :person_bowing:

  • 최초 진입: 인트로 화면 → 시작하기 버튼 → appLogin→ 약관동의 → 메인 화면

  • 약관동의 완료 + 로그인 1회 완료 후 재진입: appLogin → 메인 화면 (인트로 화면 미노출)

appLogin을 앱 진입 시점에 가장 먼저 호출하면 인트로 화면보다 약관동의 화면이 먼저 노출될 수 있어서 의도한 플로우와 맞지 않는 방법으로 보입니다.

이 경우 getIsTossLoginIntegratedService를 이용해 분기 처리하는 방향이 맞는지 다시 한 번 확인 부탁드립니다!

@mingg 님, 인증 및 보안 > 토스로 로그인한 서비스에서 연결을 해제한 후 호출하면 어떤가요 ?
샌드박스에서는 약관 동의 화면 호출이 불가합니다 :cry:

인증 및 보안 > 토스로 로그인한 서비스에서 연결을 해제한 후 호출하면 getIsTossLoginIntegratedService 결과값이 true로 내려옵니다.

연결 해제하면 false로 내려오는게 맞는걸까요?

getIsTossLoginIntegratedService 이 함수 동작을 다시 한번 확인해보겠습니다!

확인해보니 현재는 getIsTossLoginIntegratedService 함수 응답 캐싱이 되어있어, 당장 사용이 어려울 것 같아요 :cry:

현재 분기처리를 위한 함수는 제공드리고 있지 않긴 한데
storage 에 userKey를 저장해두고, 서비스 진입시 서버를 호출하여

  • userKey가 유효하면 바로 로그인 처리,
  • userKey가 유효하지 않으면 인트로 화면을 보여주는 방식은 어떤가요 ?

userKey를 확인하려면 appLogin호출을 해야하는데 약관동의가 안되어있으면 약관동의화면이 제일 먼저 나오는 로직으로 이해하고있습니다. 그럼 인트로 화면을 약관동의보다 먼저 노출되게하려면 어떻게 해야하나요..?

제가 잘못 이해한걸까요 ?! :thinking:

이미 토스 로그인을 거쳐 userKey를 받았다면, 해당 키를 미니앱 storage에 저장해두고,
서비스 진입 하자마자 해당 키(유저)가 유효한지 확인 후 분기 처리하면 되지 않을까 해서 말씀드렸어요 :man_bowing:

e.g.

  1. 서비스 진입시 자체 서버 POST 호출 (https://domain.com/user/activate)
    2.1 현재 유효하다면 appLogin() 호출
    2.2. 유효하지 않다면 intro 페이지 랜딩