Server/Node.js
JSON Web Token(JWT)
kkkkk1023
2023. 9. 5. 12:43
Token이란?
: 암호화된 긴 문자열
JSON Web Token(JWT)이란?
세션 데이터를 서버에 저장하지 않고
마이페이지를 열람할 수 있는 열쇠(토큰)을 사용자에게 주는 것
<작동방식>
1. 유저가 로그인을 하면 서버에서 토큰을 브라우저에게 전송한다.
2. 토큰을 받은 브라우저는 토큰을 쿠키 또는 Local Storage에 저장한다.
3. 이후 마이페이지와 같은 로그인 후 사용할 수 있는 기능을 수행하려고 하면 요청과 함께 헤더에 토큰을 포함해서 보낸다.
4. 서버에서는 해당 토큰이 유효한지 검사를 하고 유효하면 마이페이지 html을 전달한다.
장점
- 데이터 위변조를 방지한다.
- 인증하기 위한 별도의 저장소가 없어도 된다
- 확장성이 우수하다
- 토큰 기반으로 다른 로그인 시스템에 접근 및 권한 공유가 가능하다.(쿠키와의 차이)
- 모바일에서도 잘 작동한다. (세션은 모바일에서 작동이 안된다.)
단점
- 세션과는 다르게 토큰의 길이가 길어, 인증 요청이 많아질수록 네트워크 부하가 심해진다.
- 토큰을 탈취당하면 대처가 매우 어럽다.