11월 20일 -JWT로 로그인과 회원가입 구현하기

Yullgiii·2023년 11월 20일
0
post-thumbnail

1. 토큰 기반 인증 🚀

토큰 기반 인증은 사용자의 상태를 저장하지 않는 상태less한 방식이다. 처음 사용자가 로그인을 하면 서버에서 사용자의 정보를 암호화한 토큰을 생성하여 사용자에게 전달한다. 그리고 사용자는 이 토큰을 클라이언트 측에 저장하여 인증이 필요한 요청을 보낼 때마다 토큰을 함께 보낸다. 서버는 이 토큰을 해독하여 사용자를 인증한다.

2. JWT의 구조 🚀

JWT(JSON Web Token)는 웹 표준(RFC 7519)으로, 두 개체에서 JSON 객체를 사용하여 가볍고 자가 수용적인 방식으로 정보를 안전하게 전송할 수 있도록 설계되었다. JWT는 헤더(Header), 페이로드(Payload), 시그너처(Signature)의 세 부분으로 구성되어 있다.

헤더: 토큰의 타입과 해싱 알고리즘 정보를 포함한다.
페이로드: 전송할 데이터(클레임)를 포함한다.
시그너처: 헤더와 페이로드를 암호화한 값이다.

3. 리프레시 토큰 🚀

리프레시 토큰은 액세스 토큰이 만료되었을 때 새로운 액세스 토큰을 발급받을 수 있게 하는 토큰이다. 이를 사용하면 사용자가 로그아웃하거나 장기간 비활동 상태가 아니라면 로그인을 유지할 수 있다.

4. 스프링 시큐리티 컨텍스트 🚀

스프링 시큐리티 컨텍스트는 인증 객체를 저장하는 공유 영역이다. 이를 통해 현재 사용자의 인증 정보를 어디서든 쉽게 접근할 수 있다.

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

위의 코드를 통해 현재 사용자의 인증 객체를 가져올 수 있다.

5. 필터 🚀

스프링 시큐리티는 필터를 통해 보안 처리를 한다. 필터는 서블릿 필터와 동일한 인터페이스를 구현한 객체로, HTTP 요청이 서블릿에 도달하기 전에 수행되는 작업을 정의한다. 스프링 시큐리티에서는 다양한 보안 기능을 필터 형태로 제공한다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글