안녕하세요.
제목에서 처럼
- Firebase auth 에서 OpenID Connect kakao 로 사용자 로그인 시
- mobile web browser (iOS Safari, aOS Chrome 등) 에서
로그인 redirect flow 가 web 으로 통하지 않고
iOS 또는 aOS native 카카오 앱을 띄워서 mobile web browser 에서 Firebase auth 사용자를 로그인 시킬 수 있는 방법이 있을까요?
감사합니다.
안녕하세요.
제목에서 처럼
로그인 redirect flow 가 web 으로 통하지 않고
iOS 또는 aOS native 카카오 앱을 띄워서 mobile web browser 에서 Firebase auth 사용자를 로그인 시킬 수 있는 방법이 있을까요?
감사합니다.
안녕하세요.
카카오 로그인 시, 카카오톡앱으로 로그인하는것은 JS SDK authorize 함수로 지원하고 있지만,
해당 함수를 사용하지 않는 REST-API 방식 카카오 로그인을 연동한 Firebase auth는
카카오 계정 로그인 페이지에 진입 시, 표시되는 [카카오톡으로 로그인] 버튼 클릭하면 카카오톡앱으로 로그인하게되므로
말씀하신 mobile web browser 기본 지원되는 부분이며,
(이용자가 개발한 네이티브앱내 웹뷰에서는 지원하지 않는 기능입니다.)
위 방식이 아닌
카카오 계정 로그인 페이지를 거치지 않고 다이렉트로 카카오톡 앱을 호출하여 로그인하는 기능은 제공하지 않습니다.
참고 부탁드려요.
답변 주셔서 감사합니다.
그렇다면 Firebase auth 를 이용하지 않고
카카오 JS SDK 를 이용하면 mobile web browser 에서도
카카오앱을 실행시켜서 OpenID/OAuth 방식으로 사용자를 로그인 시킬 수 있는 부분 일까요?
네,가능합니다.
안녕하세요,
위 내용대로 mobile web browser에서 카카오 앱을 통한 로그인은 구현하였습니다.
추가로:
카카오 로그인을 Firebase Auth에서 OIDC prodiver로 등록해서 사용하고자 할 때,
앱과 웹(JS)의 클라이언트 key가 구분되어 있어서 서로 다른 OIDC provider로 등록을 해야 합니다.
앱과 웹의 클라이언트 key를 같은 값으로 사용하거나, 웹과 앱에서 로그인 한 같은 카카오 계정이 하나의 OIDC provider 로그인으로 인식이 되도록 하는 방법이 있을까요?
혹은 Firebase Auth 연동시에 대한 가이드가 있다면 참고 할 수 있을까요?
감사합니다.
안녕하세요.
Firebase Auth는 적용된 앱키 단위 OIDC provider 구분 처리를 하고 있어서 동일 카카오 계정이 별개 계정으로 처리되는 것으로 알고 있습니다.
반면 카카오에서는 플랫폼별 앱키를 다르게 제공하여 플랫폼 특성에 맞는 보안을 제공하고 있습니다.
이에 따라 아쉽지만 Firebase Auth를 적용하실때는 REST-API 키로 REST-API 방식 로그인만 구현하셔야할 것으로 보입니다.
검토 부탁드려요.
Actually, there is a solution to this, but you need to make many changes on the backend side, which can be a painful process for you.
I wrote a simple working example for you to understand.
EDIT2: I used translation for Korean words, it may be incorrect.
EDIT: I have prepared a diagram for you to understand better.
User->>Client: Login Request
Client->>Client: Platform Detection (Web/App)
Client->>Kakao: Kakao Login (by Platform)
Kakao–>>Client: Kakao Access Token
Client->>Kakao: User Information Request
Kakao–>>Client: Kakao User Info
Client->>Backend: Custom Token Request
Backend->>Kakao: Token Verification
Kakao–>>Backend: Token Information
Backend->>Firebase: Creating Custom Tokens
Firebase–>>Backend: Firebase Custom Token
Backend–>>Client: Custom Token
Client->>Firebase: Firebase Auth Sign In
Firebase–>>Client: Firebase User
Client->>Firebase: Firestore User Data Update