[SpringBoot] 인증 JWT 개념
반응형
웹 개발 및 인증 절차와 관련된 다양한 기술과 개념이 손글씨로 적혀 있습니다. 주요 내용은 다음과 같습니다:
- React: 사용자 인터페이스를 구성하는 프론트엔드 라이브러리입니다.
- Nginx: 고성능 웹 서버 및 리버스 프록시 서버로 사용됩니다.
- 4요 웹서버: 네 개의 주요 웹 서버를 의미하는 것 같습니다.
- Http 요청하고/Http 응답하기: HTTP 요청과 응답을 처리하는 과정입니다.
- Http 요청 body: 요청 본문에 대한 내용입니다.
- "Authorization...": 인증 헤더를 사용한 요청입니다.
- JWT 토큰: JSON Web Token으로, 인증 및 권한 부여에 사용됩니다.
- typ JWT: JWT 타입을 지정하는 클레임입니다.
- claim: JWT에 포함된 정보입니다.
- Signature: JWT의 무결성을 검증하는 서명입니다.
- App Server: 애플리케이션 서버를 의미합니다.
- Tomcat: Java 서블릿 및 JSP를 실행하는 애플리케이션 서버입니다.
- WAS: Web Application Server, 즉 웹 애플리케이션 서버를 의미합니다.
JWT 동작 방식
- JWT 생성: 사용자가 로그인하면 서버는 사용자 정보를 기반으로 JWT를 생성합니다. JWT는 헤더(header), 페이로드(payload), 서명(signature)로 구성됩니다.
- 헤더: 토큰 타입과 알고리즘 정보를 포함합니다.
- 페이로드: 사용자 정보(클레임)를 포함합니다.
- 서명: 비밀키를 사용하여 JWT의 무결성을 검증합니다.
- JWT 전송: 생성된 JWT는 클라이언트(브라우저)에 전송되고, 클라이언트는 이를 저장(예: 로컬 스토리지)합니다.
- JWT 사용: 클라이언트는 이후의 요청에 JWT를 포함하여 서버에 보냅니다. 주로 Authorization 헤더에 Bearer 토큰 형식으로 전송됩니다.
- JWT 검증: 서버는 요청을 받을 때마다 JWT의 서명을 검증하여 토큰의 유효성을 확인합니다. 유효한 경우, 페이로드에 포함된 사용자 정보를 통해 권한을 부여하거나 거부합니다.
예제 시나리오
- 사용자가 로그인합니다.
- 서버가 JWT를 생성하여 클라이언트에 전송합니다.
- 클라이언트가 JWT를 저장합니다.
- 이후의 모든 요청에 클라이언트가 JWT를 포함하여 서버에 보냅니다.
- 서버가 JWT를 검증하고 요청을 처리합니다.
반응형
'낙서장[1] > 2. SpringBoot' 카테고리의 다른 글
[SpringBoot] 게시글 등록 주요 애노테이션 (0) | 2025.02.07 |
---|---|
[SpringBoot] 인증과 권한 관리 SecurityContextHolder (0) | 2025.02.07 |
[SpringBoot] @RequestBody 애노테이션 (0) | 2025.01.24 |