카카오 로그인과 파이어베이스를 연동하는 방법에 대해서 찾아보고 커스텀 토큰을 만들어서 사용하는 방법으로 적용을 하였습니다.
그런데 커스텀 토큰을 사용할 경우, 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()으로 로그인을 하게 되면 그 다음부터는 각각 기능들의 싱글톤 인스턴스를 직접 가져와 별다른 인증 없이 사용할 수 있는 것처럼 보여서요.
넵 최신버전을 쓰고 있습니다!
지금 필요한 상황은 여러 인증 제공업체를 연결할 때(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에도 올라와 있는데 별다른 해답은 없네요 ㅠ.ㅠ 이외에도 다른 질문 있으시면 댓글 달아주세요
1개의 좋아요
안녕하세요! 혹시 이와 관련해서 업데이트 된 사항이 있을까요??