https://developers.kakao.com/docs/latest/ko/kakaologin/flutter#token-presence
해당 레퍼런스 문서를 보고서 궁금한점이 있습니다.
해당 레퍼런스 문서 예제를 보면 현재 카카오SDK 내에 저장된 토큰이 있는지, 그 토큰이 유효한지 확인한 후에 토큰을 다시 UserApi.instance.loginWithKakaoAccount() 를 통해서 가져오는데요. 이부분이 살짝 이해가 안갑니다.
저건 사용자에게 로그인을 요청하는거고, 토큰이 아예 존재하지 않을때도 토큰을 얻기 위해서 저 메서드를 통해서 토큰을 획득하는데 왜 SDK 내에 토큰이 있는데 토큰을 얻기 위해서 다시 로그인을 요청하는 건가요?
그냥 바로 로그인요청 없이 OAuthToken 객체를 가져오는 법은 없는지, 혹은 OAuthToken 객체 없이 accessToken 값을 가져오는 방법이 있는지 궁금합니다.
안녕하세요.
말씀처럼 해당 가이드는 토큰 존재 시, 토큰 유효성 검사를 하고나서 유효하지 않은 경우 로그인 요청 하도록 가이드 하고 있습니다.
사용자가 카카오 계정을 탈퇴하거나 관리자 화면에서 서비스와 직접 연결 끊기 하는경우 해당 토큰은 즉시 만료 됩니다.
때문에 접근토큰이 저장되어 있지만, 해당 토큰이 유효하지 않는 경우가 발생합니다.
이 경우는 토큰 유효성 검사로 확인할 수 있으며, 유효하지 않은경우 카카오 로그인하지 않은 경우와 동일함으로 로그인 기능을 사용하셔야만 합니다.
2개의 좋아요
위 댓글에서 우디가 설명주신 것처럼 SDK 내부에 토큰이 저장되어있다고 해서 토큰이 유효한지는 보장할 수 없기 때문에 토큰 유효성 체크를 해서 로그인 상태를 확인한다고 봐주시면 될 것 같습니다.
로그인 요청 없이 SDK에 저장된 토큰을 가져오고 싶다면 await TokenManagerProvider.instance.manager.getToken()
코드를 호출하시면 되는 점 참고 부탁드려요
2개의 좋아요
아하… 코드 분기를 제가 잘못봤었네요. 유효성 검사 후에 토큰을 얻기위해 다시 로그인 요청을 하는걸로 착각했었습니다. 토큰 유효성 검사 사례에 대해서도 자세히 설명해주셔서 감사합니다!
1개의 좋아요
아하 토큰을 가져오는 메서드가 이거였군요! OauthToken을 받으려면 무조건 로그인해야하는건가? 하는 의문때문에 계속 햇갈렸었는데 이제야 좀 정리가 되고 있습니다. 감사합니다!
1개의 좋아요