export const finishKakaologin = async (req, res) => {
const bodyData = {
grant_type: "authorization_code",
client_id: process.env.KAKAO_CLIENT,
redirect_uri: `https://localhost:443/users/kakao/finish`,
code: req.query.code,
client_secret: process.env.KAKAO_SECRET,
};
const queryStringBody = qs.stringify(bodyData).toString('utf8');
console.log(queryStringBody);
const tokenRequest = await fetch("https://kauth.kakao.com/oauth/token", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
},
body: queryStringBody,
});
console.log(tokenRequest);
};
안녕하세요, 카카오 로그인을 구현해보려고 도전중인 새내기 대학생입니다
토큰을 받아오는 과정에서 invalid client 오류가 계속 떠서 질문드립니다
구글링을 해본 결과, 대부분 client_secret을 넣어주지 않았거나, Content-type에 맞는 포멧으로 데이터를 전달해주지 않아 발생하는 오류라고 하는데, application/json 이외의 데이터 전송을 처음 접해봐 아직 미숙합니다
위의 코드는 앞서 /kakao/finish 에서 인가 코드를 받아온 후, 인가 코드를 request의 query를 통해 얻은 후 인가 코드를 통해 다시 토큰을 얻으려는 코드입니다