로그를 보니 REST_API_KEY 방식 카카오 로그인에서 Redirect URI로 잘 이동하여 액세스 토큰 까지 잘 발급한 것으로 보이는데요.
Redirect URI 에서 Custom scheme 으로 리다이렉트 하도록 구현하신걸까요?
(1) 사용자 액션 없이 외부 앱 실행은 iOS에서 기본 차단되는 것으로 알고 있습니다.
ㄴ 리다이렉트 URI에서 버튼클릭으로 이동하여 정상작동 여부 확인해보시겠어요?
(2) SDK에서 리다이렉트 처리 까지 수행하는 NATIVE_APP_KEY 방식이 아니므로 LSApplicationQueriesSchemes는 필요 없는 상황으로 보이고
ㄴ 앱내 인앱브라우저에서 REST_API_KEY 방식 카카오 로그인 할테니 개발하신 앱으로 되돌아가는 처리도 필요 없어보이는데요.
현재 저희 앱은 Expo Managed Workflow 기반 iOS 애플리케이션입니다.
Expo Managed 환경에서는 카카오 iOS SDK를 적용하기 위해서는
**expo prebuild 후 네이티브 iOS 프로젝트를 직접 관리해야 하는 구조(AppDelegate 수정, Pod 설정, Swift bridging 등)**로 전환해야 합니다.
이 방식은 사실상 Expo의 네이티브 레벨로 넘어가야 하며,
현재 저희 프로젝트에서는 다른 기능(iOS 딥링크, 소셜 로그인 통합, 결제 리다이렉트 등) 관련 이슈들을
우선적으로 해결해야 하는 상황이라
지금 즉시 iOS 네이티브 SDK 방식으로 구조를 변경하기는 어려운 상황입니다.
그래서 당장은
OAuth2 + 기본 브라우저 기반의 REST 로그인 방식에서 iOS 딥링크 문제를 해결하는 방향으로 진행을 하는걸로 변경 되었습니다.
그러므로 이에 관련되어서 새로 제가 알아야할 사항이나 참고할 만한 도큐먼트나 내용이이 있을까요?
안내해주신 Android 하이브리드 앱 가이드는 확인했습니다.
다만, 저희가 구현하려는 방식은 **iOS 환경에서의 OAuth2 기반 간편로그인(카카오톡 설치 시 앱 연동 포함)**이며,
현재 앱 구조가 Expo Managed Workflow 기반이라
카카오 iOS SDK 적용을 위한 prebuild(AppDelegate 수정, Pod 설정 등)는 당장 도입하기 어려운 상황입니다.
저희는 카카오 로그인 방식을
카카오 SDK → OAuth2 + 인앱브라우저(SFSafariViewController / ASWebAuthenticationSession) 기반 방식으로 전환하기로 결정했습니다.
이 방식에서도 카카오톡 앱이 설치되어 있을 경우,
인증 과정 중 카카오톡 앱으로 이동 후 다시 Redirect URI를 통해 앱으로 복귀하는 플로우를 사용하게 됩니다.
그래서 iOS 환경에서 아래 사항들에 대해 추가적으로 확인하고 싶습니다:
iOS에서 OAuth2 인증을 인앱 브라우저(SFSafariViewController 또는 ASWebAuthenticationSession) 기반으로 진행할 때
카카오 간편로그인을 구현하는 데 유의해야 할 카카오 측 권장사항이 있을까요?
카카오톡 앱 → iOS 앱으로 Redirect URI로 복귀할 때
필수적으로 지켜야 하는 규약이나, 방지해야 하는 패턴(iOS 보안 정책 상 문제가 되는 방식 등)이 있을까요?
OAuth2 Authorization Code Flow 방식(iOS In-App Browser + Custom URL Scheme Redirect)에 대해
카카오가 제공하는 공식 문서가 있다면 안내 부탁드립니다.
현재 저희는 iOS에서
OAuth2 + 인앱브라우저 기반(ASWebAuthenticationSession 기반)으로 카카오 간편로그인을 구현하는 것이 최우선 방향이며,
이에 필요한 참고 자료나 주의사항이 있다면 큰 도움이 될 것 같습니다.
(1) 앞서 문의는 인앱브라우저가 아니라 디폴트 브라우저를 띄우시고 원래 앱으로 돌아가지 못한다는 문의셨죠?
(2) 인앱브라우저라면 앱으로 돌아가는 로직은 필요없고, 톡으로 로그인 후, 앱으로 돌아가는 부분은 별도 조치가 필요 없습니다.
ㄴ iOS의 정책 상, 호출한 앱으로 자동으로 돌아갈 수 없습니다. 이용자가 직접 돌아가야합니다.
ㄴ webView 네비게이션에서 카카오톡 스킴만 잘 호출 하면 됩니다.
인앱브라우저상에서 로그인은 현재까지 매우 많은 앱에서 사용중이고 별다른 제재 리포트를 전달 받지 못했습니다.
다만, 엑스포환경에서 동작은 제가 확인하지 못하므로 직접 구현해보셔야할 것으로 보입니다.