카카오 로그인 후, 파이어베이스의 OAuthProvider credential 만드는 방법

카카오 로그인과 파이어베이스를 연동하는 방법에 대해서 찾아보고 커스텀 토큰을 만들어서 사용하는 방법으로 적용을 하였습니다.
그런데 커스텀 토큰을 사용할 경우, credential을 만들 수가 없어서 로그인 이외의 작업에는 이용할 수가 없습니다.

https://firebase.google.com/docs/reference/swift/firebaseauth/api/reference/Classes/OAuthProvider

찾아보니 파이어베이스에 OAuthProvider가 있고, 카카오 로그인도 OAuth를 쓰고 있는 것으로 알고 있습니다.
OAuthProvider의 credential을 만들기 위해 providerID, idToken, accessToken 을 넘기도록 되어 있는데 카카오 로그인 후에 어떤 값을 넘겨야 하는 것인지 알 수 있을까요? idToken 을 가져오기 위한 변수는 없는 것 같던데 가져올 방법이 있는지 궁금합니다.

1개의 좋아요

@bhythmmaker Firebase 인증 를 보시면 현재 공식적으로 FB, Google, Twitter, Github등은 제공되고 있으나, Kakao는 아직 지원을 하고 있지 않습니다. 물론 Kakao에서도 firebase측에 요청은 해 놓았습니다.
질문하신것은 custom oauth부분인데요, 이 경우는 직접 server-side code와 oauth에 대한 control을 직접 하셔야 하기 때문에 쉽지는 않습니다.
iOS는 아직이고, Android의 경우는 custom oauth를 위해 샘플을 contribution한 것이 있습니다.

@anon81369599 참고할만한 링크좀 주셔요~(혹시 제가 잘못 설명한것이 있으면 고쳐주세요~) cc @richard.jeon

커스텀 토큰을 사용하여 로그인하는 예제는 https://github.com/firebase/custom-auth-samples에 있긴 한데, 위에 쓰신 글을 보니 이미 커스텀 토큰을 만들어서 유저를 생성하고 로그인시키는 부분은 하신듯 하네요. 안드로이드의 경우에도 OAuthProvider라는 클래스가

https://firebase.google.com/docs/reference/android/com/google/firebase/auth/OAuthProvider

이 레퍼런스에 나와있으나, 10.2.6 버전의 firebase-auth 라이브러리로는 해당 클래스가 임포트가 안되어 있어서 테스트를 해볼수가 없네요ㅠ.ㅠ IOS에서 firebase 몇 버전을 사용하고 계신가요?

그리고 iOS 레벨에서 firebase의 다른 기능들을 사용하는데 credential 값이 직접 필요한가요? 안드로이드의 경우에는 signInWithCustomToken()으로 로그인을 하게 되면 그 다음부터는 각각 기능들의 싱글톤 인스턴스를 직접 가져와 별다른 인증 없이 사용할 수 있는 것처럼 보여서요.

아 최신 버전이 11.2.2네요^^

넵 최신버전을 쓰고 있습니다!

지금 필요한 상황은 여러 인증 제공업체를 연결할 때(iOS에서 계정에 여러 인증 제공업체 연결  |  Firebase)하고 사용자의 정보를 변경하기 위해 재인증할 때(Firebase에서 사용자 관리하기) 입니다.
둘 다 파라미터로 credential 을 요구하고 있어서 처리를 못 하고 있는 상황입니다 ㅠㅠ
@michael 님 말씀대로 구글에서 처리해줘야 하거나, OAuth를 직접 컨트롤하는 방법밖에 없는 상황이라면 시간을 들여서 작업하는 방법밖에 없겠네요 ㅠㅠ

Account linking 한정해서 조사를 좀 해봤는데요. 결국 out-of-the-box로 제공되지 않는 커스텀 프로바이더는 수동으로 처리해야할 것 같습니다 ㅠ.ㅠ 기존에 페이스북이나 구글로 로그인한 유저가 카카오 계정 연결을 누를 경우에, “kakao:${userId}” 같은 형태의 키에 로그인되어 있는 유저의 uid와 카카오 계정 정보 (이메일, user id, 프로필 사진 url, 닉네임 등등) 을 매핑 시켜서 Firebase realtime database에 저장하셔야 할 것 같아요. Firebase Auth가 CustomToken을 사용한 로그인 기능을 제공하긴 하는데 이렇게 해서 가입을 할 경우에 프로바이더 리스트에도 뜨지 않고 아직까진 제약이 많은 상황인 것 같아서 꼭 개선이 되었으면 좋겠네요~

https://stackoverflow.com/questions/40171663/linking-custom-auth-provider-with-firebase

비슷한 질문이 stackoverflow에도 올라와 있는데 별다른 해답은 없네요 ㅠ.ㅠ 이외에도 다른 질문 있으시면 댓글 달아주세요 :slight_smile:

1개의 좋아요

넵넵 친절한 답변 감사드립니다!!

안녕하세요! 혹시 이와 관련해서 업데이트 된 사항이 있을까요??