JWT란 당사자간에 정보를 JSON 개체로 전송하고 디지털 서명으로 되어있음
- 간단하게 정보를 안전하게 전할 때 혹은 유저의 권한 같은 것을 체크하기 위해서 사용
JWT의 구조
- Header : 토큰에 대한 메타 데이터를 포함(해싱 알고리즘 등)
- Payload : 유저 정보, 만료 기간, 주제 등
- Verift Signature : 토큰이 보낸 사람에 의해 서명되었으며 어떤 식으로든 변경되지 않았는지 확인하는데 사용되는 서명
- 서명 알고리즘, 비밀 or 공개 키를 사용해 생성된다.
비교하는 과정
- Admin만 볼 수 있는 글을 보려고할 때 요청시 보관하고 있던 Token을 Header에 넣어서 같이 보냄
- 서버에서는 JWT를 이용해 Token을 다시 생성하고 받은 Token과 비교함
- 클라이언트에서 온 Header + 클라이언트에서 온 Payload + 서버가 가지고 있는 Secret Text = Token 생성
- 둘의 Toekn이 같다면 Admin맞음
나는 Passport(Guards)와 JWT를 이용해 인증 과정을 처리함