안녕하세요. REST API의 토큰 갱신하기 (REST API | Kakao Developers REST API) 를 서비스에서 구현하려고 합니다.
스벨트킷을 사용하고 있어서, 토큰 갱신하기 REST API를 요청할 /api/kakao라는 엔드포인트를 만들고 여기에 POST 메서드를 작성한 코드의 일부분은 다음과 같습니다.
export async function POST({ request }) {
const { refresh_token } = await request.json();
console.log(KAKAO_REST_KEY);
console.log(refresh_token);
const res = await axios.post(
'https://kauth.kakao.com/oauth/token',
{
grant_type: 'refresh_token',
client_id: KAKAO_REST_KEY,
refresh_token
},
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
}
}
);
}
클라이언트 코드에서 axios를 이용해서 /api/kakao 로 사용자의 refresh_token과 함께 HTTP POST 요청을 보내면 해당 메서드로 값이 잘 전달됩니다. KAKAO_REST_KEY에는 앱 키가 정확하게 잘 입력되어 있는 것을 확인하였고, refresh_token의 값도 정확하고 만료 기한도 지나지 않은 것을 확인했습니다.
그런데 서버 코드에서 해당 값들을 통해서 axios 요청을 보내면 다음과 같은 오류가 발생합니다.
Request failed with status code 401
Error: Request failed with status code 401
at createError (/Users/heygwangjin/insomenia/balpoomman/node_modules/axios/lib/core/createError.js:16:15)
at settle (/Users/heygwangjin/insomenia/balpoomman/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/Users/heygwangjin/insomenia/balpoomman/node_modules/axios/lib/adapters/http.js:322:11)
at IncomingMessage.emit (node:events:525:35)
at IncomingMessage.emit (node:domain:489:12)
at endReadableNT (node:internal/streams/readable:1359:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
혹시나 해서 curl 명령어를 통해서 해당 요청을 보냈는데 여기서는 응답이 잘 오는 것을 확인 했습니다.몇 시간 째 이 오류를 해결하지 못 하고있어서 어떻게 해결해야할 지 질문 드립니다.