Session and JWT

웹 애플리케이션 에서 JWT 기반의 인증 방식과 세션 기반의 인증 방식중에서 선택하게 된다. 웹 브라우징을 하면 무상태 프로토콜인 HTTP를 사용하게 된다. 그래서 상태값을 기억하기 위해서는 애플리케이션은 반드시 세션이나 토큰의 방식을 사용할 수 밖에 없다.

JWT나 세션 중 하나를 선택하는 것은 단순히 하나를 선택하는 것은 아니다. 애플리케이션에서 사용할 요소를 결정하려면 몇 가지 요소를 살펴보아야 한다. 이를 알아내려면 JWT와 세션의 두 접근 방식을 모두 비교하여 사용자를 인증해야 한다.

로그인 폼이 있는 웹 사이트가 있다고 하면, 우선 아이디와 패스워드를 입력하면 브라우저가 서버에 요청을 보낸다. 서버는 암호 해시를 비교하여 해시가 일치하면 특정 세션ID로 세션이 생성된다. 그 다음 세션ID가 있는 쿠키를 반환하고 쿠키는 HTTP 전용이므로 자바스크립트에서는 읽을 수 없다.

References

  • https://www.loginradius.com/blog/async/guest-post/jwt-vs-sessions/#:~:text=Session%20cookies%20take%20up%20very,small%20because%20its%20just%20the
  • https://yonghyunlee.gitlab.io/node/jwt/
  • https://jwt.io/introduction
  • https://datatracker.ietf.org/doc/html/rfc7519
  • https://auth0.com/docs/secure/tokens/json-web-tokens