안녕하세요. 현재 카카오 develop을 사용하고 있습니다.
토큰 갱신과 관련하여 이슈사항이 있어 문의 남깁니다.
현재 제가 운영하고 있는 서비스에서 refreshToken을 저장하고 있습니다. 그리고 그 refreshToken이 발급된 지 24일이 지나면,
사용자 토큰 갱신 API를 이용해 재발급을 할 수 있도록 해두었습니다. 그런데 특정한 하나의 refreshToken이 expired된 것을 확인하게 되었습니다.(다른 토큰을 갱신이 되었음.)
로그를 확인하니 아래와 같았습니다.
{“error”:“invalid_grant”,“error_description”:“expired_or_invalid_refresh_token”}
왜 이런 현상이 일어나는 것인지 알고 싶습니다. 참고로 저희 어플리케이션에 사용자 목록에는 토큰과 관련한 해당 사용자가 저장되어 있는 상태입니다.
답변 부탁드립니다.
leon
9월 8, 2016, 5:07오전
#2
토큰값을 알려주셔야 확인이 가능할 것 같네요. 토큰값이 남아있지 않다면 appKey 와 로그가 찍힌 일시가 있어야 확인해볼 수 있을 것 같아요~
메시지로 보내주시면 됩니다
안녕하세요.
expired_or_invalid_refresh_token 에러 메시지는 refresh token이 만료되거나 invalid 한 경우에 발생하는 메시지 입니다.
자세하게 구분하면 아래의 경우에 발생하게 됩니다.
형태가 잘못된 경우
존재하지 않는 경우
만료된 경우
관련된 User가 존재하지 않는 경우
refreshToken 의 appId 와 요청한 appKey의 appId가 다른 경우
정확한 정보는 refreshToken 값, appKey, 로그가 찍힌 시간이 있어야 추가적인 확인이 가능합니다.
또 다른 만료 refresh_token을 확인하였습니다.
메시지로 관련 정보 보내드렸습니다.
혹시 사용자가 임의로 카카오톡 앱 설정에서 저희 앱 허용을 삭제할 수도 있는지도 궁금합니다. 왠지 그 이유때문이 아닌가 해서요.
빠른 답변 부탁드릴게요
leon
9월 12, 2016, 3:47오전
#7
알려주신 데이터로 확인해보니 사용자가 계정 정보를 변경시킨 케이스였습니다. 이런 경우 기 발급받은 리프레쉬 토큰들은 만료시킵니다.
이외에도 다양한 경우에 리프레쉬 토큰들이 만료될 수 있으니 되도록이면 배치로 갱신하시기 보다는 사용자의 요청이 있을때 처리해주시는게 좋을 것 같아요.
1개의 좋아요
안녕하세요 이미 시간이 많이 지난 답변이지만 정확한 궁금증이 해결되지 않아 문의 남깁니다.
사용자의요청이 있을때마다 정확히 어떤 처리를 한다는건지 알려 줄 수 있으신가요??
저같은경우는 사용자가 카카오계정에서 임의 탈퇴하였을때 expired_or_invalid_refresh_token 에러가 발생하였습니다.