Access Token & JWT
쿠키의 단점
쿠키를 지원하는 클라이언트
에서밖에 사용할 수 없음
적절히 관리되지 않은 쿠키는
보안에 취약
하며, 관리를 하려고 해도
CORS 대응이 복잡함
Token Based Auth
토큰이란,
사용자의 자격증명
(아이디, 패스워드 등)을 통해 인증이 이루어진 후,
특정 자원에 대한 자격증명
으로서
대신 사용
되는 인증 수단
서버에 요청을 할 때마다
토큰을 요청에 직접 포함
시켜서 전송 (주로 Authorization 헤더에 넣어서 전송)
Cookie vs Token
Web Storage
브라우저에서 키-값 쌍을 저장할 수 있는 저장소
쿠키에 비해 사용하기 편리하고 저장 가능한 용량도 큼(10MB 가량)
브라우저 탭이 닫히면 내용이 삭제되는
sessionStorage
, 브라우저 탭이 닫혀도 내용이 유지되는
localStrage
가 있음
Web Storage 실습
Web Storage 장점 (vs 쿠키)
쿠키를 지원하지 않는 경우에도 문제없이 사용할 수 있음
쿠키를 사용하지 않음으로써
CORS 관련 문제를 회피
할 수 있음
Web Storage 단점 (vs 쿠키)
쿠키와는 다르게,
클라이언트에서 직접 토큰을 저장하고 관리
해야 함
토큰을 localStorage에 저장하게 되면 자바스크립트로 토큰을 탈취할 수 있게 되므로,
웹사이트에 악성 스크립트를 삽입하는 공격(XSS)
에 노출되지 않도록 신경써야 함
JSON Web Token
최근 널리 사용되고 있는
토큰 형식의 표준
토큰 안에
JSON 형식
으로 정보를 저장함
보안을 위해 서명 또는 암호화를 사용할 수 있음
jwt.io
JWT 실습
Link
now App Link
Next
Fetch API
참고 링크
https://jwt.io/introduction/
https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage
https://blog.outsider.ne.kr/1160
https://velopert.com/2448
https://auth0.com/blog/json-web-token-signing-algorithms-overview/