안녕하세요 access token과 refresh token에 대해 궁금한 점이 있습니다

카카오 로그인시 현재 스프링 시큐리티로 개발중이고
https://kauth.kakao.com/oauth/authorize
https://kauth.kakao.com/oauth/token
https://kapi.kakao.com/v2/user/me

application.properties에서 provider로 등록 후 카카오 로그인 사용중인데요
저희 사이트에서 카카오API는 로그인 제외 사용하지 않고 있습니다.
근데 여기서 궁금한게 있는데요 제가 Oauth 구현을 DefaultOAuth2UserService 를 상속받고 있는 상태인데
log.info("social Service Token :: {} " + userRequest.getAccessToken().getTokenValue()); //accessToken
이 코드를 통해 access token은 가져올 수 있지만 refresh token은 DefaultOAuth2UserService 를 상속받아 구현을 하게 되면 발급이 불가능하다고 들었습니다

따로 카카오계정 요청해서 발급받으면 중복요청이라고 에러가 발생하구요.
코드 수정 거의 없이 가져올수 있다면 그러고 싶은데 어떻게 해야할까요
현재 카카오로그인 버튼 (/oauth2/authorization/kakao)을 클릭하면 provider를 통해 접근토큰 (access token)발급, 사용자 정보 조회가 자동진행 되는것으로 알고있습니다.

그리고 또 궁금한건 현재 (/oauth2/authorization/kakao)를 사용하고 DefaultOAuth2UserService 를 상속받아 구현중인데
refresh token이 없이 access token만 사용하여 서비스를 운영하면 어떠한 문제점이 발생할 수 있는지 알고 싶습니다

안녕하세요.

refresh_token 사용하실 예정이 없으신 경우 굳이 획득하여 저장하실 필요 없습니다.
refresh_token은 접근토큰을 갱신할 때 사용합니다.
서비스가 사용사의 접근토큰을 지속적으로 사용할 필요가 있을 때, 이를 갱신하기 위해 서비스에 저장하며 이러한 니즈가 없는경우 저장하지 않습니다.

아래 회원님의 다른 문의 글의 답변에서 이미 전달해 드린바와 같이 OAuth2UserRequest 에서 refresh_token 값을 획득 하시려면 accessTokenResponseClient를 재 정의하여 해당 모듈의 tokenResponseConverter 에서 OAuth2UserRequest의 additionalParameters 같은 필드에 저장하여 꺼내 쓰셔야 합니다.

혹은 사용자의 로그인 성공 여부와 상관없이 저장하실 목적이라면 authorizedClientService를 재정의하여 해당 모듈에서 접근가능한 refresh_token을 활용하여 바로 저장할 수 있씁니다.

https://devtalk.kakao.com/t/rest-api/133368/18

감사합니다.
연결끊기 , 로그인유지시(접근토큰 갱신) 필요해서 질문드렸습니다
additionalParameters 파라미터로 refresh token 확인했는데
접근토큰 갱신하려면
spring.security.oauth2.client.provider.kakao.token-uri=https://kauth.kakao.com/oauth/token 이 경로에
필수 파라미터들을 보내 갱신하더군요

저는 loaduser를 사용해 구현하고있는터라 방법이 따로 있나요?
찾아보니 jwt밖에 없어서 혹시 다른 방법이 있나해서 여쭤봅니다…

아쉽지만, Spring에서 기본 제공되는 기능을 확장하여 사용하시거나, 직접 구현 하셔야만 합니다.
그 외 방법은 없습니다.

연결 끊기 되면, 사용자의 refresh_token도 같이 만료됩니다.
로그인 유지를 위해 접근토큰을 갱신하고자 하는 이유가 어떻게 될까요?

저는 로그인 유지라고 하면 서비스측 인가(ex, 로그인 세션)을 유지하는 것으로 이해하고 있는데요
서비스측 인가와 사용자의 접근토큰 유지는 다른 이슈여서 문의 드립니다.

이 둘을 동기화 하고자 하는 니즈가 있으신가요? 있으시다면 어떤 이유이신지 설명 부탁드립니다.

카카오 API를 이용하려면 접근토큰이 유효해야한다는 글을 봐서 그렇습니다
카카오 API중 카카오 로그인 기능만 사용중인데 따로
refresh token으로 access token 갱신해서 유효한 토큰으로 안만들어도 되나요?

제 생각은 현재 저희 사이트 카카오 로그인을 하게되면 prompt=login 파라미터를 준 상태라 로그아웃 후 로그인 할때마다
항시 카카오 ID/PW입력 창이 나옵니다.
로그인을 할 때 마다 유효한 access token이 발급되는건 알고있습니다.
현재 access token, refresh token은 DB에 저장해놓는 상태라 보안측면은 괜찮을거라 생각듭니다

안녕하세요.

어드민 키를 사용하면 연결된 사용자의 접근토큰 없이도 카카오 로그인과 관련된 대부분 API는 사용할 수 있습니다.
사용자 접근토큰이 반드시 필요한 API를 제외하고는 항시 접근토큰을 유효한 상태로 유지하지 않으셔도 됩니다.

접근토큰이 항상 유효해야 하는 이유가 있을까요?