인가 코드는 카카오 로그인에 사용할 access_token
을 발급받기 위해 필요한 코드다.
// GET
https://kauth.kakao.com/oauth/authorize?client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}&response_type=code
code={code}
로 인가 코드가 전달된다.// constroller
@Get('/kakao/callback')
kakaoLogin(@Query('code') code: string) {
return this.signupService.kakaoLogin(code);
}
@Query
를 통해 받아올 수 있다.access_token
받기여기부터는 service
kakaoLogin 내부에서 진행
access_token
은 사용자 정보에 접근하기 위해 필요한 토큰이다.
//POST
const kakao_api_url = `https://kauth.kakao.com/oauth/token
?grant_type=authorization_code
&client_id=${this.config.get('KAKAO_CLIENT_ID')}
&redirect_url=${this.config.get('KAKAO_REDIRECT_URL')}
&code=${code}`;
authorization_code
고정// request 보내기
const token_res = await firstValueFrom(this.axios.post(kakao_api_url));
const access_token: string = token_res.data.access_token;
access_token
을 통해 사용자 정보 받아오기// GET, POST
'https://kapi.kakao.com/v2/user/me'
// header
Authorization: `Bearer ${access_token}`
const user_ifo = await firstValueFrom(
this.axios.get('https://kapi.kakao.com/v2/user/me', {
headers: {
Authorization: `Bearer ${access_token}`
},
}),
);
const user_id: string = user_ifo.data.id;