Session에 콜백을 설정하고, checkAndImplicitOpen()함수를 호출하면 세션이 유효할 때 onSessionOpened 함수가 호출되지만 로그인이 안되어있을경우는 정확하게 알 수 있는 방법이 없어보입니다.
그렇다고 AuthService 객체의 requestAccessTokenInfo 메소드를 호출하여 확인하는것도 모호해보이고… 이러한 예가 없어서 이를 위한 방법이 궁금합니다.
현재 구현 된 구조가
- Session 객체의 checkAndImplicitOpen() 함수를 호출
- ISessionCallback 인터페이스의 onSessionOpened() 함수가 콜백되면 Firebase Functions에 Session 객체의 getTokenInfo() 메소드를 호출하여 얻은 인스턴스의 access token을 서버로 POST
- 서버에서 https://kapi.kakao.com/v2/user/me api를 Authorization 헤더와함께 호출하여 사용자 정보를 요청하여 정상 응답을 받았을 경우 Firebase에서 auth 인터페이스의 createCustomToken 을 호출하여 토큰 생성하여 앱으로 응답
- 앱에서 FirebaseAuth 객체의 signInWithCustomToken() 메소드를 호출하여 Firebase의 사용자 인증 완료
이런식으로 카카오와 Firebase Auth를 연동한 상태입니다. 이러한 상황에서 카카오 세션이 만료되었거나 사라지거나 저도 모르는 상황에 카카오 세션이 없지만 Firebase의 사용자 정보는 유효 할 경우 FirebaseAuth 객체의 signOut를 호출하여 Firebase의 세션도 종료하고싶은데 이를위해 앱이 구동된 시점에서 세션이 유효한가, 유요하지않거나 없는가를 명확하게 확인하려면 어떻게하면 좋을까요?
또한 위 네단계를 통한 Firebase의 사용자 인증연동또한 보안에 문제가 없는지 더 좋은 방법이 있다면 알려주시면 감사합니다.