사파리에서 간편로그인 후 사파리로 돌아갔을 때 일반로그인 팝업이 뜨는 문제 2

안녕하세요. 수고가 많으십니다.

사파리에서 간편로그인 후 사파리로 돌아갔을 때 일반로그인 팝업이 뜨는 문제로 문의드렸었습니다.

우선 환경은 iPhone 6 / IOS 12.4.5 입니다.

기존에 문의드렸을때는 iframe내부에서 카카오로그인을 부르는 것이 문제인것 같아 iframe을 사용하지 않고 카카오톡 JS로그인을 적용하였습니다 모바일 사파리에서 카카오로그인버튼 클릭시 설치된 카카오톡 간편로그인으로 연결된 후 약관동의클릭후 다시 모바일 사파리로 돌아오면 일반로그인(브라우저의 카카오톡 로그인 팝업)이 뜹니다.

Android Webview, Android Chrome, 하물며 IOS의 Chrome에서는 정상동작합니다.

단, 저렇게 뜬 일반로그인(브라우저의 카카오톡 로그인 팝업)을 한번 해 주면 이후에는 정상동작 하는 것으로 보입니다.

혹시 해당문제는 어쩔 수 없는 IOS사파리의 특징인지요?

혹시 일반 로그인 팝업이 뜨는 것을 막을 수 있는 방법은 없는지요? 카카오톡 간편로그인 후 사파리로 되돌아갈때 일반로그인 팝업이 뜨는것만 막을 수 있으면 될 것 같은데…

그리고 기존 문의에 답변주신 아래와 같은 리다이렉트방식도 적용해보려고 했으나 문제가 있습니다.
가이드: https://developers.kakao.com/docs/latest/ko/kakaosync-develop/login
차이점은 팝업 방식(기존 함수)이 아닌 리다이렉트 방식(신규 함수)이며, 서버에서 인증 코드를 받고 토큰을 요청해야하는 구현이 추가로 필요합니다. <-- 이렇게 말씀해주셨는데 고객 요구사항이 반드시 카카오톡이 깔려 있는 경우 사파리에서 카카오톡 간편로그인을 이용하게 해달라는 요구사항이 있습니다. 위 방식은 REST처럼 code발급 후 RedirectURI를 통해 AccessToken을 발급받는 것으로 보이는데 이 경우에도 카카오톡 네이티브 앱으로 넘어가서 간편로그인 후에 돌아오는지요? 그렇다면 고려해볼 수 있겠으나 해당펑션 호출시 일반 로그인창이 뜬다면 사용하기가 어려울 것 같습니다.

특정 버전의 사파리에서는 카카오톡앱의 간편로그인을 사용할 수 없는것이 아닌지요? 아니면 한번은 일반로그인을 해줘야 사용할 수 있다거나… 만약 그렇다면 고객을 설득하는 쪽이 빠를 것 같습니다… ^^;

감사합니다.

1개의 좋아요

자답합니다.

  1. 부모창에서 기존 로그인 API 사용 : 동일한 문제 발생
  2. 부모창에서 신규 API (RedirectURI방식) 사용 : 문제가 해결됨(간편로그인 및 카톡미인스톨시 일반로그인창)
  3. 아마도 iframe안에서도 신규 API를 사용하면 문제가 없을것 같지만 추가 테스트는 해보지 않았습니다.

결국 최초에 답변해주신 내용이 정답이었고 iframe안에서 사용할시 문제가 발생할 소지가 있을것 같아 2번 방법으로 처리하기로 했습니다.

감사합니다.

1개의 좋아요

내용 추가합니다. 하이브리드앱이라 안드로이드/IOS의 네이티브 라이브러리 로그인처리 후 리프레시토큰을 받아 웹으로 보내 Rest 엑세스토큰으로 교환하여 사용하고 있었는데 한번 카카오 간편 로그인 후에는 계속 일반 모바일웹의 로그인이 떠서 원인도 모르고 미쳐나가던참에 이유를 알게 됬습니다.
카카오로 되돌아올(code발급을 위한) redirect_uri를 넘길때 인코딩을 해주니 해결됬습니다. 그냥 넘기면 뒤에response_type=code까지 붙어서 간편로그인 후 일반팝업을 띄우는 오동작이 발생했었네요.

이제 이상없이 잘 됩니다. 속이 다 후련합니다 ㅋㅋ

–> 수정합니다. 여전히 같은 증상으로 고생중입니다.한번 로그인 해주기 전까지 계속 일반 모바일웹의 로그인이 뜹니다.

1개의 좋아요

네이티브 앱의 refresh token을 서버로 보내 REST용 access token을 발급받은 후 다시 code발급을 위한 redirectURI로 보내는 바보짓을 했습니다. ㅋㅋㅋ

네이티브 앱의 refresh token은 다른 사이트로 이동했다가 code발급하는 과정 필요없이 access token으로 바로 교환이 가능한걸 이해를 못해서 벌어진 헤프닝이었습니다.

이제 잘 작동합니다. 감사합니다.

1개의 좋아요