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