본문 바로가기

JWT3

JWT (JSON Web Token) - 3 JWT (JSON Web Token) - 1 JWT (JSON Web Token) - 2 JWT (JSON Web Token) - 3 JWT, JSON Web Token은 인증에 필요한 정보들을 암호화 한 토큰이다. 사용자는 이 토큰을 HTTP헤더에 담아서 서버로 보내게 된다. JWT는 크게 3부분으로 나뉜다. [Base64(HEADER)].[Base64(PAYLOAD)].[Base64(SIGNATURE)] 각 부분들은 모두 Base64를 통해 인코딩 된다. 1. HEADER 헤더는 두가지 정보를 지니고 있다. alg: 해싱 알고리즘 (HS512). 이 알고리즘은 토큰 검증시 사용되는 verify signature에서 사용된다. typ: 토큰의 타입 (JWT) { "alg": "HS256", "typ":.. 2020. 4. 28.
JWT (JSON Web Token) - 2 JWT (JSON Web Token) - 1 JWT (JSON Web Token) - 2 JWT (JSON Web Token) - 3 토큰 저장 위치 서버가 토큰을 발급하면 브라우저에서 사용자와 서버간에 토큰이 전달되는 방식은 크게 두가지로 나뉜다. 1. 로그인 성공시 서버가 토큰을 응답정보에 담아서 전달하도록 하고, 해당 값을 웹 스토리지(localStorage, sessionStorage)에 넣고, 그 다음부터 웹 요청을 할 때는 HTTP 헤더 값에 넣어서 요청하는 방법 2. 발급된 토큰을 쿠키에 넣는 것. 첫번째 방법은 구현하기 쉽고 하나의 도메인에 제한되어있지 않다는 장점이 있지만 XSS(Cross Site Scripting) 공격에 취약하여 공격자의 악성스크립트에 노출이 되어 탈취 당하기 쉽다는.. 2020. 4. 28.
JWT (JSON Web Token) - 1 JWT (JSON Web Token) - 1 JWT (JSON Web Token) - 2 JWT (JSON Web Token) - 3 JWT를 보기 전에 우선 인증 방식을 간단하게 알아보자. 사용자의 인증정보를 관리하기 위한 방식으로 크게 두가지가 있다. 첫번째는 세션(서버)기반 인증이고 두번째는 토큰 기반 인증이다. 세션(서버)기반 인증 유저가 로그인을 하면 서버측에서 유저가 현재 로그인 중이라는 인증정보(세션)를 기억하고 있는다. 세션 기반의 인증 시스템은 클라이언트로부터 요청을 받으면, 클라이언트의 상태를 계속 유지하고, 이 정보를 서비스에 이용하는데 이러한 서버를 Stateful 서버라고 한다. 세션 기반 인증의 문제점은 크게 두가지로 볼 수 있다. 1. 세션을 유지해야하는 유저의 수가 많아진다면.. 2020. 4. 28.
728x90