ByteByteGo Ep112: What is a deadlock?의 세션 기반 인증과 JWT 기반 인증에 대한 부분을 읽고 내용을 정리하였습니다.

세션 기반 인증
- 이 방법은 데이터베이스와 세션 저장소의 세션 정보를 저장하고 세션 아이디를 사용자에게 넘겨준다.
- 항공사 데이터베이스에 모든 세부 정보가 저장되어 있고 승객은 항공권 ID만 얻는다고 생각해보자
1. 사용자는 로그인을 요청하고 프론트엔드 앱은 백엔드 서버에 해당 정보를 저장한다.
- 백엔드는 비밀키를 이용해서 세션을 만들고 세션스토리지에 정보를 저장한다.
- 서버는 고유한 세션 아이디를 가진 쿠키를 클라이언트에게 다시 보낸다.
- 사용자는 새로운 요청을 하고 브라우저는 요청과 함께 세션 ID를 보낸다.
- 서버는 세션 ID를 이용하여 사용자를 인증한다.
JWT 기반 인증
- JWT 기반 인증은 세션 저장소에 세선 정보를 저장하지 않는다.
- 전체 정보를 토큰에 저장해서 사용할 수 있다.
- 항공권에 있는 모든 세부사항을 가지고 있다고 생각되지만 암호화되어있다.
1. 사용자는 로그인을 요청하고 프론트엔드 앱은 백엔드 서버에 해당 정보를 저장한다.
2. 서버는 자격 증명을 확인하고 JWT를 발행한다. JWT는 개인키를 사용하여 서명하며
세션 스토리지는 포함되어있지 않다.
3. JWT를 쿠키 또는 응답 바디의 형태로 클라이언트에게 전달한다. 각각은 장단점이 존재한다.
4. 매 요청마다 브라우저는 JWT와 쿠키를 함께 보낸다.
5. 서버는 비밀 개인키와 함께 JWT를 확인하고 거기서 유저 정보를 가져온다.

너무 직관적이고 좋음
참고
https://blog.bytebytego.com/p/ep112-what-is-a-deadlock