1. 무엇을?
이메일 로그인 기능과 Spring Security를 이용한 JWT 기반 인증/인가 로직을 구현합니다.
기존에는 세션(Session) 방식을 고려했지만,
최종적으로 토큰(JWT) 방식을 선택하여 클라이언트 중심의 인증 구조로 설계합니다.
2. 상세 설명
기능 개요
- 사용자는 이메일과 비밀번호를 통해 로그인할 수 있습니다.
- 로그인 성공 시 서버는 Access Token을 발급하여 응답합니다.
- 이후 클라이언트는 모든 요청에 Authorization: Bearer 형태로 토큰을 전송합니다.
- 서버는 토큰을 검증하고, 인증 정보(Authentication)를 SecurityContextHolder에 저장해 인가 처리를 수행합니다.
JWT선택 배경
초기에 Spring Security의 기본 세션 인증 방식을 고려했으나,
클라이언트-서버 간 상태 유지(Session Storage) 필요성과 확장성 문제로 인해 Stateless한 JWT 방식으로 전환했습니다.
JWT 구조
Header: 알고리즘 및 타입 (HS256, JWT)
Payload: 이메일(식별자), 발급 시간, 만료 시간
Signature: 비밀 키 기반 서명 검증
→ 토큰 위조나 변조 시 즉시 차단 가능
적용 범위
/auth/signup: 회원가입 (토큰 불필요)
/login: 이메일 로그인 (Access Token 발급)
/posts, /comments 등 이후 API: Access Token 검증을 통한 접근 제어
3. 추가 사항
현재는 Access Token만 발급하지만, 다음 주차 과제에서 Refresh Token 및 카카오 로그인(oAuth)을 추가할 예정입니다.
1. 무엇을?
이메일 로그인 기능과 Spring Security를 이용한 JWT 기반 인증/인가 로직을 구현합니다.
기존에는 세션(Session) 방식을 고려했지만,
최종적으로 토큰(JWT) 방식을 선택하여 클라이언트 중심의 인증 구조로 설계합니다.
2. 상세 설명
기능 개요
JWT선택 배경
초기에 Spring Security의 기본 세션 인증 방식을 고려했으나,
클라이언트-서버 간 상태 유지(Session Storage) 필요성과 확장성 문제로 인해 Stateless한 JWT 방식으로 전환했습니다.
JWT 구조
Header: 알고리즘 및 타입 (HS256, JWT)Payload: 이메일(식별자), 발급 시간, 만료 시간Signature: 비밀 키 기반 서명 검증→ 토큰 위조나 변조 시 즉시 차단 가능
적용 범위
/auth/signup: 회원가입 (토큰 불필요)/login: 이메일 로그인 (Access Token 발급)/posts, /comments등 이후 API: Access Token 검증을 통한 접근 제어3. 추가 사항
현재는 Access Token만 발급하지만, 다음 주차 과제에서 Refresh Token 및 카카오 로그인(oAuth)을 추가할 예정입니다.