본문 바로가기
PulseBoard

🚀 axios 설치와 역할 - 서버에서 토큰 검증이 필요한 이유!

by 밤새는 탐험가89 2025. 12. 26.
728x90
SMALL

❓ axios는 왜 필요한가? 

axios는 HTTP 요청을 보내는 라이브러리야.

서버는 Kakao API에서

https://kapi.kakao.com/v2/user/me

 

로 토큰 검증 / 유저 정보 조회를 해야 해.

이때 HTTP 요청이 필요하고,
Node.js 에서는 이런 요청을 직접 보내기 어렵기 때문에
우리가 쓰는 도구가 바로 axios야.

 

🔍 axios가 하는 일

const response = await axios.get(
  "https://kapi.kakao.com/v2/user/me",
  { headers: { Authorization: `Bearer ${accessToken}` } }
);

 

이 한 줄은:

📌 Kakao 서버에 HTTP GET 요청
📌 accessToken을 인증 헤더로 보내서
📌 사용자 정보를 받아오는 일

을 수행해.

 

👍 axios 대신 다른 점들은?

대안으로는:

라이브러리 설명
fetch (node-fetch) 브라우저 fetch 같은 것
request (deprecated) 오래된 요청 라이브러리
axios Async/await 기반, JSON 자동 파싱

 

axios가 가장 안정적 & 실무용

 

👇 더 쉬운 비유

  • axios는 Node 서버가 “웹으로 통신하는 도구”
  • iOS의 URLSession / Alamofire처럼
  • 서버에서 외부 API를 호출해야 할 때 쓰는 도구

 

🧠 왜 “서버에서 토큰 검증이 필요한가?”

카카오 accessToken은 클라이언트에서만 보장되지 않음

만약 서버에서 검증 없이

(client) accessToken → firebase customToken

 

이라고 해버리면:

❌ 누군가 임의로 토큰을 조작해서 서버로 보내도
❌ Firebase customToken이 만들어짐

보안 취약

 

그래서 서버는 반드시

✅ 카카오 서버에 보낸 토큰이
✅ 실제로 valid한지
✅ 아직 만료 안 됐는지

검증하고 userId를 가져와야 함

 

📌 “OIDC ID Token 검증” vs “accessToken 검증”

이건 조금 기술적인 차이야.

📍 accessToken 검증 방식

✔ 서버가 Kakao API를 호출해서 검사
✔ 간단하고 바로 구현 가능
✔ 근데 카카오 서버 호출이 필요

📍 OIDC ID Token 검증 방식

✔ 클라이언트가 OIDC용 id_token을 받음
✔ 서버는 공개 키로 JWT 서명만 검증
✔ 카카오 API를 호출하지 않아도 됨

→ OIDC 방식이 표준 OIDC 인증 방식이긴 하지만
→ 구현이 조금 더 복잡

728x90
LIST