JWT 재정리 : https://velog.io/@sago_mungcci/2022-07-29
JWT :인증에 필요한 정보들을 Token(쿠키에 담은 인증에 필요한 데이터인데 json으로 표현됨)에 담아 암호화시켜 사용하는 토큰
주민등록증과 같은 개념. 즉 서버가 토큰(주민등록증)을 발급해주면 클라이언트에 저장되어있는 쿠키에 JWT를 제시함으로써 사용자 스스로 인증한다.
세션은 서버가 사용자를 검문(인증)하는 개념인것 같고 또 서버가 사용자를 검문(인증)하는데 필요한 이름표 같음.
이2개의 차이점은 생성방식과 인증방식이 다른데 사용자가 회원가입시 JWT는 서버가 만든 토큰을 Header Payload Signature 형식으로 발급해주면 만료기간전까지 토큰만 제시해주면 접속이 가능한 반면, 세션은 사용자가 회원가입을 하면 토큰이 아닌 세션 ID를 부여하고 사용자의 세션 id를 서버가 지속적으로 인증함.
따라서 세션은 계속적인 연결이 가능하지만 토큰은 토큰을 제시하고 주고 받음으로써 계속적인 연결이 되지 않음.
그러나 세션은 서버가 털리면 모든 세션정보가 넘어갈 수있는 위험이 있지만 클라이언트는 서버가 털려도 인증에 필요한 정보가 넘어가지 않는다.
또한 토큰은 분실시 만료기간이후로 다시 발급받을 수 있다는 위험이 있다.