Stay Hungry Stay Foolish
728x90

JWT 2

[설계의사결정] JWT + Redis 인증

AUTHJWT + Redis 인증 설계 - 세션 대신 JWT를 선택한 이유목차1. 배경2. 인증 방식 비교3. 세션을 선택하지 않은 이유4. 결정 — JWT + Redis5. JWT의 한계Booktine은 로그인 기반 기능이 많은 서비스다. 따라서 인증 구조를 어떻게 설계할지가 서비스 전체 구조에 큰 영향을 줬다.1. 배경Booktine은 로그인한 사용자만 이용할 수 있는 기능이 많다. 독서 기록 작성, 메모, 진행률 관리 등 대부분의 핵심 기능이 인증을 전제로 한다. 따라서 어떤 방식으로 인증을 처리할지가 중요한 설계 결정 중 하나였다. 핵심 기준은 다음과 같았다.서버 확장성프론트엔드(React)와의 연동 편의성구현 복잡도 2. 인증 방식 비교방식설명확장성구현 난이도세션서버 메모리에 인증 정보를 저장..

[트러블슈팅] JWT secret 키 길이 부족으로 인한 WeakKeyException

TROUBLESHOOTINGJWT secret 키 길이 부족으로 인한 WeakKeyException 해결목차1. 구현 배경2. 문제 상황3. 원인4. 해결5. 왜 시작 시점에 터지는가6. 배운 점1. 구현 배경JWT 기반 인증 시스템을 구현했다. JwtProvider에 @PostConstruct로 init() 메서드를 작성해 애플리케이션 시작 시 secret 키를 초기화하도록 했고, application.yml에 jwt.secret 값을 설정했다.JWT 서명에는 secret 키가 사용된다. 이 키는 토큰이 변조되지 않았는지 검증하는 기준이 되기 때문에, 사용하는 알고리즘이 요구하는 최소 길이를 만족해야 한다.2. 문제 상황애플리케이션을 실행하자마자 서버가 시작되지 않았고, jwtProvider 빈 생성 ..

728x90