하이브리드앱에서 로그인 문제로 문의드립니다

하이브리드앱에서 로그인 문제로 문의드립니다.
하이브리드앱의 웹뷰에서 JS간편로그인을 사용하지 못하므로 안드로이드/IOS의 카카오톡 SDK 라이브러리를 저희 앱에 삽입하고 네이티브용 키를 사용하여 사용자의 카카오톡 로그인을처리한 후 refresh token만 받아 그것을 저희쪽 웹서버에서 REST용 access token으로 갱신하여 사용하고 있습니다.
사용자가 하이브리드앱의 웹뷰에서 카카오톡 연동하기 버튼을 누르면 저희앱의 카카오톡 SDK를 통해 카카오톡간편로그인을 다녀와 리프레시 토큰을 받아온 후 ajax로 저희 웹서버에서 rest용 access token을 발급받은 후 세션에 저장하고 아래와 같은 URL을 받아 이동하게 되는데요.
https://kauth.kakao.com/oauth/authorize?client_id=cd7e40def3077c33c3fcdb274857d2f2&redirect_uri=https%3A%2F%2Fwww.uat.amway.co.kr%2Flogin%2Fouter%2Freceive%2Fcode%2Fkakao&response_type=code

location.href = “위 주소” 로 이동을 시킬때 cancel이 나면서 웹뷰안에 카카오톡모바일로그인창(카카오톡이 설치되지 않았을때 뜨는 일반 로그인창)이 뜹니다.
그런데 해당 화면에서 카카오톡 ID/PASSWORD를 한번이라도 입력해주면 이후에는 일반로그인창이 뜨지 않고, 카카오톡 연동하기 버튼을 누르면 일반로그인팝업이 아닌 네이티브앱을 거쳐 카카오톡 간편로그인이 뜬 후 refresh token -> ajax로 웹서버에 rest accesstoken갱신 및 위와 동일한 URL을 받고 이동시 cancel이 나지 않고 정상적으로 진행이 됩니다.

어째서 일반 로그인 화면이 뜨는지, 그리고 왜 일반로그인을 한번이라도 성공시에는 원래 프로세스로 location.href 이 되는지 원인을 못 찾고 있습니다.

그리고 일반 로그인 화면이 웹뷰에 떴을때의 주소는 다음과 같습니다.
https://accounts.kakao.com/login?continue=https%3A%2F%2Fkauth.kakao.com%2Foauth%2Fauthorize%3Fclient_id%3Dcd7e40def3077c33c3fcdb274857d2f2%26redirect_uri%3Dhttps%3A%2F%2Fwww.uat.amway.co.kr%2Flogin%2Fouter%2Freceive%2Fcode%2Fkakao%26response_type%3Dcode

제가 어떤 부분을 놓치고 있는지 확인 부탁드리겠습니다.

감사합니다.

저처럼 삽질할 사람 있을까봐 삭제하려다 자답합니다.

제가 개념을 똑바로 이해하지 못해서 벌어진 헤프닝이었네요.

카카오 JS로그인 스크립트중 redirectURI를 전달하는 방식이 있는데요
하이브리드앱에서는 네이티브라이브러리를 통해 리프레시토큰을 받고 서버측에서 REST API키를 발급받기 때문에 redirectURI가 필요가 없는데 JS쪽과 유사하게 처리를 하려고 해서 이런 일이 벌어졌습니다. redirectUri가 반드시 필요한줄 착각하는 바람에 ㅋㅋ

모바일웹, PC : JS로그인 스크립트로 redirectURI를 통해 code를 받아 accessToken획득. (redirectURI를 통한 방식이 사파리등에서 문제가 없음)
하이브리드 웹앱 : 네이티브SDK를 통해 refresh token을 받고 자신의 서버에 ajax로 보내거나 서브밋하여 rest용 accessToken으로 교환

제 경우는 하이브리드웹앱의 네이티브SDK에서 refresh token을 발급받았고 그 토큰으로 rest용 accessToken으로 바로 교환이 가능하므로 카카오로 다시 다녀올 필요가 없었는데 두 케이스가 accessToken을 구한 뒤의 로직이 아주 흡사해서 공통 로직을 합치다가 그만 이런 바보같은 케이스를 만들고 말았네요 ㅋㅋ

어쨋든 해결되서 기쁩니다.

1개의 좋아요