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
'PulseBoard' 카테고리의 다른 글
| ▶️ index.js 파일 설치기 (버전 이슈 해결 포함) (0) | 2025.12.26 |
|---|---|
| Firebase Cloud Functions index.js 완전 해설 (0) | 2025.12.25 |
| Firebase Authentication의 OpenID Connect를 쓰지 않고Cloud Functions + Custom Token으로 Kakao 로그인을 구현한 이유 (1) | 2025.12.25 |
| Firebase - Functions 의 Index.js 역할 (0) | 2025.12.24 |
| Firebase Functions 초기 환경 설정 해보기 (0) | 2025.12.24 |