Choorai

인증/인가 입문

로그인 기능을 붙이기 전에 알아야 할 최소 개념과 보안 기본 습관을 정리합니다.

핵심 4개

  • 인증(Authentication): 누구인지 확인
  • 인가(Authorization): 무엇을 할 수 있는지 확인
  • Session/JWT: 로그인 상태를 유지하는 방법
  • OAuth: 외부 계정(Google/GitHub) 로그인 프로토콜

초심자 권장 전략

  • 빠른 시작: Clerk/Firebase Auth 같은 관리형 인증
  • 직접 구현: Session/JWT + 토큰 저장 정책 + CSRF/XSS 대응까지 필요

토큰 전달 예시

frontend/api.ts
const token = localStorage.getItem('accessToken');

await fetch('/api/v1/me', {
  headers: {
    Authorization: "Bearer ${token}",
  },
});

권한 체크 예시

backend/auth-check.ts
if (!user) return res.status(401).json({ message: 'Unauthenticated' });
if (user.role !== 'admin') return res.status(403).json({ message: 'Forbidden' });

// authorized
next();

초심자 실수 TOP 3

  • 401403 의미를 혼동
  • 액세스 토큰 만료 처리(재로그인/갱신) 누락
  • 클라이언트에서만 권한 체크하고 서버 검증 생략

60분 챌린지 연결 지점

마지막 업데이트: 2026년 2월 22일 · 버전: v0.0.1

피드백 보내기

입력한 내용으로 새 이슈 페이지를 엽니다.

GitHub 이슈로 보내기