이번 프로젝트에서 Access Token으로 JWT를 사용했다.
JWT의 특징은 다음과 같다.
로그인 이 후 요청이 있을 시 JWT를 함께 보내줘야 한다. (인증절차)
그래서 Client는 JWT을 유지하고 있어야 한다.
유지하기 위한 방법으로는 크게 LocalStorage와 Cookie가 있는데, 대부분 LocalStorage 저장방식은 금지한다. XSS 공격에 취약하기 때문이다.
그러나 나는 이번 프로젝트에서 LocalStorage에 JWT를 보관하는 방식으로 JWT Auth를 처리했다.
Token
의 타입과 해싱 알고리즘을 지정한다. Token
을 검증할 때 사용Token
에 담을 정보이다.Token
은 claim(정보의 조각)으로 이루어져 있으며 name/value 쌍으로 이루어져 있다.const payload = {
"userId" : "testId",
"userName" : daunJo"
}
const encodepayload = new Buffer(JSON.stringify(payload)).toString('base64').replace('=','');
https://jwt.io/ 에서 JWT의 구조를 쉽게 확인할 수 있다
https://www.vaadata.com/blog/jwt-tokens-and-security-working-principles-and-use-cases/
https://velog.io/@heumheum2/JWT-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%9D%B8%EC%A6%9D%EB%B0%A9%EC%8B%9D