토큰이란?
로그인을 하거나 사이트를 이용할 때 사용되는 권리
왜 사용하나요?
사용자가 웹 서비스를 이용할 때 사용자에게 권한을 부여하거나 막아야할 때가 있습니다.
예를 들어 사용자마다의 장바구니, 위시리스트, 결제를 이용할 때 필요하게 됩니다.
이 때 사이트를 이용할 때마다 유저를 확인하는 api를 매번 실행하게 됩니다.
토큰은 한번만 부여하면 이 토큰으로 로그인된 유저에게 권한을 주는 역할을 하게 됩니다.
유저가 아이디와 비밀번호로 로그인을 합니다
서버측에서 해당 계정정보로 검증합니다.
계정정보가 정확하다면, 서버측에서 유저에게 signed 토큰을 발급해줍니다.
클라이언트 측에서 잔달받은 토큰을 저장해두고, 서버에 요청을 할 때 마다, 해당 토큰을 함께 서버에 전달합니다.
서버는 토큰을 검증하고, 요청에 응답합니다.
종류
LOCAL STORAGE
SESSION STORAGE
cookie
- 웬만한 브라우져에는 지원이 다 된다
- api가 한번 더 호출되므로 서버에 부담, 용량이 작다
- CSRF, XSRF 공격으로 부터 취약하다
local storage
- 서버에 불필요하게 데이터 저장안함
- HTML4만 지원되는 브라어져라면 지원 x
- 특정 도메인으로 부터 격리되어 서브도메인과 같이 다른 도메인에서 접근이 불가능
session storage
- 장단점은 local storage와 동일, 단지 기능 차이