JSONWebToken(JWT)?
예전에는 사용자(client)의 정보를 쿠키
에 담아 저장했었습니다.쿠키
에 저장하는 방식은 쿠키
를 변조하여 쉽게 정보를 바꿀 수 있기 때문에 보안에 취약했습니다.JWT
는 유저가 로그인하면 서버는 유저의 정보를 토큰
에 담아 전달하게 됩니다.
서버는 클라이언트의 요청받을때마다 유효한 토큰
인지 검증합니다.
JWT의 형태
JWT
는 .
을 이용하여 구분되어 있습니다. 첫번째 .
앞은 header로 구성되어있고 두번째 .
앞은 내용, 마지막은 서명으로 구성되어 있습니다. JWT
는 JWT
디코딩 사이트를 통해 인코딩 된 값을 디코딩할 수 있습니다. 그렇기때문에 JWT
에는 비밀번호를 담는 것은 매우 위험합니다.
JWT 사용 방법
1 | npm install jsonwebtoken |
터미널에서 위 코드를 실행하여 jsonwebtoken
을 설치합니다.
1 | const jwt = require('jsonwebtoken') |
사용할 자바스크립트 파일에서 위 코드를 요청하여 jsonwebtoken
을 활성화 해줍니다.
1 | const token = jwt.sign(id, 'mysecret') |
위 코드처럼 user생성과 로그인시 user의 id
로만 JWT
를 발행할 수 있습니다.