로그인 프로세서에서 JWT 토큰을 사용한다. 그렇다면 이때 사용하는 JWT 토큰이라는 건 대체 뭘까?? JWT의 개념부터 알아보자.
JWT란?
Json Weeb Token의 약자로 하나의 인터넷 표준 인증 방식이다.
말 그대로 인증에 필요한 정보들을 Token에 담아 암호화해서 사용하는 토큰이다.
JWT는 서명된 토큰이다. 공개/개인 키를 쌍으로 사용하여 토큰에 서명할 경우 서명된 토큰은 개인 키를 보유한 서버가 이 서명된 토큰이 정상적인 토큰인지 인증할 수 있다.
이런 구조 때문에 인증 정보를 담아 안전하게 인증을 시도하게끔 전달할 수 있다.
JWT 토큰의 구성
누구든지 복호화하여 열어 볼 수 있지만 토큰의 내용을 조작할 수는 없다. 열어 볼 수는 있기 때문에 중요한 데이터는 저장하면 안 된다.
토큰을 생성할 때 signature
(토큰의 비밀번호)를 생성하여 사용하게 되는데 이 비밀번호를 누구나 아는 것은 아니다.
따라서 백엔드에서 signature를 통해 토큰 조작 여부를 알 수 있다.