안녕하세여. 카카오톡 로그인중 리프레쉬토큰 관련하여 궁금한점이 있어 남깁니다.
리프레쉬 토큰 만료기간은 대략 1달이고, Session.getCurrentSession().checkAndImplicitOpen()를 통해 accesstoken과 refreshtoken을 갱신한다고 들었습니다.
아래 사항이 맞는지 확인 부탁드립니다.
- 리프레쉬 토큰이 만료 안된 경우
- 리프레쉬토큰을 가지고 접근 토큰 갱신
- 리프레쉬토큰 만료기간 7일이내라면 카카오톡 서버에서 리프레쉬 토큰 갱신하여 내려줌
- 리프레쉬 토큰이 만료된 경우
질문) Session.getCurrentSession().checkAndImplicitOpen(); 이값이 false로 리턴되는지??
질문) 리프레쉬 토큰이 만료된 상화에 대하여 테스트를 진행하고 싶은데, 1달동안 기다릴수는 없습니다. 어떻게 테스트를 해야하는지 확인 부탁드립니다.
감사합니다.
위 나열해주신 사항중 사실과 다른 부분들은 아래와 같습니다.
-
유효기간과 만료기간이 변경되었습니다. 기존에 1달, 7일이었는데 2달, 1달로 연장되었습니다. 아래 링크에서 확인 가능합니다.
https://developers.kakao.com/docs/restapi/user-management#로그인
-
checkAndImplicitOpen() 은 유효기간이 만료된 경우에만 false 를 리턴하고 서버에서 연결 끊기 또는 카카오 계정 비밀번호 변경 등을 통해 리프레시토큰이 만료된 경우는 감지하지 못하고 true 를 리턴합니다. 정확한 정보는 아니고 클라에서 판단할 수 있는 수준의 정보라고 생각하시면 될 것 같아요.
현재 만료를 테스트하실 수 있는 가장 좋은 방법은 SDK 에서 로그인된 토큰 값으로 /v1/user/logout API 를 호출하셔서 액세스토큰과 그 액세스토큰을 발급하는데 사용된 리프레시토큰을 같이 만료시키는 것입니다. 아래 링크에 스펙이 나와있습니다.
https://developers.kakao.com/docs/restapi/user-management#로그아웃
이 때 SDK 의 logout() 메소드는 호출하시면 안되는게 이 메소드는 실제로 클라에서 토큰 정보를 지워버리기 때문에 실제 만료 상황과 살짝 다를 수 있습니다. 반드시 클라에서 앱 내에서 별도의 http 클라이언트로, 혹은 외부 Postman 같은 REST API client 를 사용하여 해당 토큰으로 /v1/user/logout API 를 호출하셔야 합니다.
만료 상황 테스트를 살짝 불편하게 제공드리는 점 죄송하게 생각하며, 피드백이 있으시면 말씀해 주시면 최대한 반영하도록 하겠습니다~
1개의 좋아요