JWT (JSON Web Token) JWT란, 인증에 필요한 정보들을 암호화 시킨 JSON 토큰을 의미한다. JWT는 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것이며, 토큰 내부에는 위변조 방지를 위해 개인키를 통한 전자서명도 들어있다. 따라서 클라이언트가 JWT를 서버로 전송하면 서버는 서명을 검증하는 과정을 거치게 되며, 검증이 완료되면 응답한다. Base64 URL-safe Encode 란, 일반적인 Base64 Encode에서 URL에서 오류없이 사용하도록 +, / 를 각각 -, _로 표현한 것이다. JWT 구조 JWT는 .을 구분자로 해서 3가지 문자열의 조합으로 나타내며, header.payload.signature 로 구성되어 있다. 이거는 ..
Session
Cookie / Session / Token 인증 방식 종류 일반적으로 서버가 클라이언트 인증을 확인하는 방식은 크게 쿠키, 세션, 토큰 3가지 방식이 있다. Cookie 인증 쿠키는 Key-Value 형식의 문자열이다. 클라이언트가 어떤 웹사이트에 방문하면, 그 사이트의 서버를 통해 브라우저에 설치되는 정보 기록용 파일이다. 그래서 각 사용자마다 고유 정보 식별이 가능해진다. Cookie 인증 방식 브라우저가 서버에 요청을 보낸다. 서버는 요청에 대한 응답에 브라우저에 저장하고 싶은 정보를 응답 헤더의 Set-Cookie에 담는다. 이후 브라우저는 요청을 보낼 때마다 저장된 쿠키를 요청 헤더의 Cookie에 담아 보낸다. 서버는 쿠키에 담긴 정보를 바탕으로 요청의 주체를 식별한다. Cookie 방식의 ..