Refresh Token 갱신 가능 기간 문의입니다

안녕하세요.

카카오 로그인 사용시, refresh token 만료기간이 2달로 되어있고, 1달이내로 만료기간이 남았을 경우 갱신 가능 기간으로 잡는다는 가이드를 보았습니다.
그런데, 2달이 모호하게 다가오네요.

다음 1,2번중 어떤 경우에 해당하는지 문의드립니다.

case 1. 2달 더하기
2월 22일 refresh token 발급 → 4월 22일 refresh token 만료

case 2. 1달을 30일로 가정하여, 60일 더하기
2월 22일 refresh token 발급 → 4월 23일 refresh token 만료

저희 서버 로직 내부에서 자체적으로 refresh token갱신이 가능한경우(1달 이내 만료)일 때만, Token 갱신 API를 전송하기 위해서, 1달라는 의미가 -30일 이내인지, -1달이내인지 정확한 기준을 알고 싶습니다.

감사합니다.

안녕하세요.

refresh token 처리 로직은 기간을 계산해서 사용하지 마시고 아래와 같이 사용하시면 좋을 것 같습니다.

(1) 최초 카카오 로그인으로 액세스토큰과 리프레시 토큰 발급
(2) 재진입 시, 리프레시 토큰으로 액세스 토큰발급 : 토큰 갱신하기

(2-1) 리프레시 토큰 발급한지 1개월 이내면 토큰갱신하기 API 응답에 refresh_token값이 없습니다.

{
    "access_token":"{ACCESS_TOKEN}",
    "token_type":"bearer",
    "expires_in":43199,
}

(2-2) 리프레시 토큰 발급한지 1개월이 넘어가면 토큰갱신하기 API 응답에 refresh_token이 재발급되고 기존 리프레시 토큰은 남은 기간에 상관없이 즉시 만료 됩니다.

{
    "access_token":"{ACCESS_TOKEN}",
    "token_type":"bearer",
    "refresh_token":"{REFRESH_TOKEN}",  //optional
    "refresh_token_expires_in":25184000,  //optional
    "expires_in":43199,
}

즉,

리프레시토큰 발급 1개월이 경과한 시점 부터 2개월 사이에 토큰 갱신하기 호출은 정상 처리되나
남은 기간에 상관없이 갱신 즉시 기존 refresh_token토큰 만료되므로

남은 기간 체크가 아니라, 토큰갱신하기 API 응답에 refresh_token이 전달되면 기존 refresh_token을 업데이트하도록 로직 구성하면 좋을 것 같습니다.

또한,

refresh_token을 업데이트 실패하는 여러가지 시스템적 문제상황을 대비해
토큰갱신하기 API 응답에 아래와 같이 refresh_token토큰 에러가 전달되면, 카카오 로그인 처리 할 수 있도록 Flow구성하면 좋을 것 같습니다.

{"error":"invalid_grant","error_description":"expired_or_invalid_refresh_token","error_code":"KOE322"}

[요약]

(1) 갱신 시간을 체크하지말고, 토큰갱신하기 API 응답에 refresh_token 전달 여부에 따라 로직 구성
(2) refresh_token만료된 상황을 대비한 flow 구성

조언 감사드립니다.

혹시 질문에 대한 답변은 불가능할까요?
2달이 정확히 어떤 의미를 갖는지 확인하고 싶습니다.

case 2. 1달을 30일로 가정하여, 60일 더하기

네, 60일로 체크한다고 합니다.