카카오톡으로 로그인한 회원의 refreshToken을 알수 있나요?

자바 스크립트로 카카오톡 로그인을 구현하고 있습니다.
그런데 accessToken과 refreshToken이 잘 넘어 오는 것 같은데 막상 나에게 메시지 보내기를 할 때 401에러가 떳습니다. 확인해보니 토큰이 만료된 것일 수 있다고 하여 확인 차 문의 드렸습니다.
export const getToken = async (authCode) => {

const header = {headers: {“Content-Type”: “application/x-www-form-urlencoded;charset=utf-8”}}

// URLSearchParams를 사용하여 파라미터를 form-data 형식으로 변환
const params = new URLSearchParams();
params.append(‘grant_type’, ‘authorization_code’);
params.append(‘client_id’, rest_api_key);
params.append(‘client_secret’, client_secret); // client_secret 추가
params.append(‘redirect_uri’, redirect_uri);
params.append(‘code’, authCode);

try {
const res = await axios.post(access_token_url, params, header);
const accessToken = res.data.access_token;
const refreshToken = res.data.refresh_token;

return { accessToken, refreshToken }; // 두 토큰 반환

} catch (error) {
console.error(‘Token Error:’, error.response?.data || error);
throw error;
}
}
export const getMemberWithToken = async (accessToken, refreshToken) => {
try {
const res = await axios.get(${API_SERVER_HOST}/api/member_copy/kakao, {
params: {
accessToken: accessToken, // 파라미터 이름을 정확히 일치시킴.
refreshToken: refreshToken
}

});
console.log("------------------",res);
return res.data

} catch (error) {
console.error(‘Member API Error Response:’, error.response?.data);
throw error;
}
이렇게 하면 받을 수 있길래 백에서 저장을 한번 해서 그 토큰을 사용해 보았는데 401에러가 떳습니다.
자바에서
private String updateKakaoAccessToken(Member member, String refreshToken) {
String tokenUrl = “https://kauth.kakao.com/oauth/token”;
String restApiKey = “myKey”;

    try {
        // 토큰 갱신을 위한 요청 파라미터
        String postParams = "grant_type=refresh_token"
            + "&client_id=" + restApiKey
            + "&refresh_token=" + refreshToken;

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);

        HttpEntity<String> entity = new HttpEntity<>(postParams, headers);

        // RestTemplate을 사용하여 요청 전송
        ResponseEntity<String> response = restTemplate.exchange(tokenUrl, HttpMethod.POST, entity, String.class);

        if (response.getStatusCode() == HttpStatus.OK) {
            JSONObject jsonResponse = new JSONObject(response.getBody());
            String newAccessToken = jsonResponse.getString("access_token");

            // 새로운 access token 저장
            member.updateKakaoAccessToken(newAccessToken);

            // 새로운 refresh token이 있으면 저장
            if (jsonResponse.has("refresh_token")) {
                String newRefreshToken = jsonResponse.getString("refresh_token");
                member.updateKakaoRefreshToken(newRefreshToken);
            }

            memberRepository.save(member);
            return newAccessToken;
        } else {
            log.error("액세스 토큰 갱신 실패. 응답 코드: {}", response.getStatusCode());
            return null;
        }
    } catch (HttpClientErrorException e) {
        // HTTP 오류 응답 처리
        if (e.getStatusCode() == HttpStatus.FORBIDDEN) {
            String errorResponse = e.getResponseBodyAsString();
            JSONObject jsonResponse = new JSONObject(errorResponse);

            // 오류 메시지와 상세 내용 로그 출력
            log.error("권한 오류 발생: {}", errorResponse);
            log.error("필요한 권한: {}", jsonResponse.optJSONArray("required_scopes"));
            log.error("허용된 권한: {}", jsonResponse.optJSONArray("allowed_scopes"));
        } else {
            log.error("액세스 토큰 갱신 중 오류 발생: {}", e.getMessage(), e);
        }
        return null;
    } catch (Exception e) {
        log.error("액세스 토큰 갱신 중 알 수 없는 오류 발생: ", e);
        return null;
    }
}

이렇게 refreshToken으로 accessToken을 갱싱하는 코드를 만들어 써보았는데도 되지 않았습니다. 에러는 액세스 토큰 갱신 중 오류 발생:이 떳습니다.
혹시 이게 메시지 권한 때문인지 아니면 코드의 문제인지 모르겠습니다.

안녕하세요.

401 에러 응답과 함께 Error Body에 상세 내용 Json 으로 전달됩니다.
응답받은 내용 로깅하셔서 기재 부탁드려요.