REST API 토큰 만료 관련질문 무한사용

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


REST API 사용하여 1주일에 한번씩 친구사용자에게 메시지를 만드는 프로그램을 만들고 있습니다.
따로 화면 구현된 것은 없어 로그인 부분은없고 python 에서 매주 한번씩 발송하는 기능입니다.

확인을 해보니 Acess Token은 REST API 사용시 6시간 만료 시간을 두고 있는데
만료되고 Rrefresh Token으로 갱신해서 사용하게 되면 유효기한 1달내에 갱신하게 된거라
Refresh Token값을따로 전달받지 못하고 폐기되는것으로 알고있습니다.

지속적으로 유지하면서 계속 발송할 수있는 방법을 어떻게 구현해야될까요?

위부분이 해결된다면 추가로 refresh token 유효기한 2달, 1달남은 시점부터 갱신가능하다고 한부분은 제가 2개월이란 시간을 체크해서 1달이후 Refresh Token을 재발급할수있도록 처리해야되는것인지요?

감사합니다.

위부분이 해결된다면 추가로 refresh token 유효기한 2달, 1달남은 시점부터 갱신가능하다고 한부분은 제가 2개월이란 시간을 체크해서 1달이후 Refresh Token을 재발급할수있도록 처리해야되는것인지요?

별도로 체크 하실 필요 없고
토큰 재발급 응답에 해당 시점 refresh token 이 추가로 전달됩니다.

즉, 토큰 재발급 시 응답에 refresh token 있다면 기존 refresh token 대신 사용하시면 됩니다.

아래 내용 참고 부탁드려요.

카카오 로그인 액세스 토큰과 리프레시 토큰

안녕하세요 저는 restapi 사용하고 있고
6시간뒤 호출 하게되면 code에 401에러코드를 뱉어내서
refresh_token을 사용하여 재발급 처리하여 사용하고 있습니다.

그결과 내용은 아래와 같은데요…(토큰번호는 일부지움…)
{“access_token”: “r4SJZbcU7eH86xxxxxxxxxxxxxx”, “token_type”: “bearer”, “expires_in”: 21599}

이경우는 기한이 만료되기전에 호출된것으로 보이는데…

현재 호출이파이썬에서 아래와 같이 호출하고있고
response = requests.get(‘https://kapi.kakao.com/v1/user/access_token_info’, headers=headers)
result = response.json()

ex) 11일날 code발급받고 실행하면 정상수행
12일날 다시 수행하면 코드에러로 refresh_token으로 토큰갱신
13일날 다시 수행하면 여기서부터 ERROR

이때는 다시 code를 발급받아 11일날 부터 진행한것처럼 반복해야하는데…
혹시 어느 부분에 로직을 넣어서 유효기한까지 쭉 사용하면서 1개월 유효기한내에 정확히 체크후 실행해
refresh_token을 받고 처리할 수 있는 로직을 구현할 수 있을까요?
이곳저곳 다찾아봤는데 토큰 갱신처리 하는 부분이 찾기 힘드네요… 힌트라도 좀 주시면 감사합니다.

안녕하세요 2일만에 리프레시토큰 만료되었다면
가입 미완료자로 분류되어 연결끊기 및 토큰 만료 처리된 것으로 보입니다.

[공지] 가입 미완료자 연결 끊기 처리 안내 / [Notice] Unlink for users who have not completed a signup

공지내용과 같이 최초 액세스 토큰 발급 시점에 사용자 정보조회 한번 진행하시면 좋을 것 같아요.

해당내용 대로 대해 링크를 해지하고

  1. 다시 (친구,메시지)권한을 받아서 로그인처리를 하였고
  2. /v1/api/talk/profile 프로필조회를 통회 정상적으로 한번 호출하여
    자동연결을 통해 지속적으로 연결 가능한 상태로 만들었다고 생각하였습니다.

REST API 형태로 호출하여 6시간 지난후 확인하니 만료되어 Refresh 토큰이 발급되었고
하루정도 지났는데 지금 다시 접속해보니 Refresh 토큰을 발급혀려고 하다가 보니
만료되었다고 또 뜨네요…

첫번째는 리프레쉬 토큰까지 왔었고 6시간후 만료.
두번째는 아래와 같은 상태로 왔고 금일 다시 호출하니(하루정도지남) 만료되었다고 뜨네요.
{“access_token”: “6XFYWn1mfdeZdj2Z2Lxxxxxxxxxxx”, “token_type”: “bearer”, “expires_in”: 21599}

친구로 추가된 사람도 같은 방식으로 연결은끊고 프로필조회하여 정상적 리턴확인완료 하였고,
현재 만드는 시스템이 정보제공목적으로 python 에서 배치형태로 돌아가는것인데
이런경우는 지원을 안하는것인지요? 아니면 다른문제가 있는건지…제가 누락한게 있는것일까요?

사용된 앱아이디는 : 975487 입니다.

혹시, 액세스 토큰이 만료되지 않고 같은 토큰 계속 사용하는 것을 말씀하신건가요?

액세스 토큰은 만료시간이 있고 만료되었다면 리프레시 토큰으로 카카오 로그인 없이 액세스토큰 재발급 받는 것입니다.

REST API | Kakao Developers REST API

네 액세스 토큰이 만료되서(6시간후) 리프레쉬 토큰으로 액세스토큰을
다시 받았고(이시점에는 refresh_token 오지 않음)

그후 다시 받은 액세스 토큰으로 접속은 가능한데… 아…

그럼 처음 액세스 토큰 만료되는 시점에 refresh_token 안오는게 문제였네요.
이게 왜 안올까요?;;
처음에는 refresh 토큰이 왔는데…
혹시 이 refresh_token은 지속적으로 사용하는것인가요?
그리고 access_token만 지속적으로 갱신되는거고?

기존 refresh_token은 새로 액세스 토큰 받으며 기존 파일에 업데이트를 쳐줘야하는것인지?
이내용이 맞나요?

혹시 이 refresh_token은 지속적으로 사용하는것인가요?

네, 맞습니다. 발급된지 1개월이 지난 시점에 액세스 토큰 재발급 시, 갱신하여 함께 전달됩니다. (기존 리프레시 토큰은 만료)

그리고 access_token만 지속적으로 갱신되는거고?

네, 맞습니다.

기존 refresh_token은 새로 액세스 토큰 받으며 기존 파일에 업데이트를 쳐줘야하는것인지?

최초 액세스 토큰 발급시, 함께온 리프레시토큰은 서버단에 안전하게 저장하셔서 액세스 토큰 재발급할때 사용하시고

액세스 토큰 재발급 응답에 리프레시 토큰이 함께 오면 기존 리프레시 토큰을 갱신해주시면 됩니다.

1개의 좋아요

와 감사합니다. 하 이부분이 너무 헷갈렸었네요. 좋은하루되세요!

1개의 좋아요