토큰에 대한 고민
인증 및 인가를 할 때 선택지는 쿠키, 세션, 토큰 정도가 있다. 주로 토큰방식을 사용하며 JWT 를 사용한다. 왜 토큰을 사용할까? 토큰이 정말 안전할까? 등 나의 생각을 정리해보려고 한다. JWT 는 어떻게 구성이 되어 있을까? 점(.)을 기준으로 헤더.페이로드.시그니쳐 로 구분된다. 헤더에는 토큰의 유형 + 해싱 알고리즘이 들어있다. 페이로드는 토큰에서 사용할 정보(클레임)이 들어있다. 이 클레임은 json 객체이다. 클레임은 토큰 정보를 표현하기 위해 정해진 종류의 데이터이다. 물론 사용자가 정의해 비공개 클레임을 만들 수도 있다. 시그니쳐는 토큰을 검증하기 위한 것들이 들어간다. 헤더와 페이로드를 base64로 인코딩한 후 비밀키를 이용해 헤더에서 정의한 알고리즘으로 해싱해 다시 base64 로..
2024.04.22