1. OAuth 란? OAuth는 외부서비스의 인증 및 권한부여를 관리하는 범용적인 프로토콜이다. 권한: OAuth는 인증뿐 아니라 권한 관리도 한다. 프로토콜: 일종의 규격이다. SNS로그인을 제공하는 Facebook, Google등은 OAuth 규격에 맞춰 인증 및 권한을 대행 관리 한다. 외부서비스: 우리가 만드는 서비스를 의미한다. 주의할점! SNS로그인 기능을 넣더라도 세션/쿠키 혹은 토큰을 사용한 인증을 거쳐야 한다. 2. OAuth 1.0 -> OAuth 2.0 2007년 OAuth 1.0이 발표되었고 많은 사람들의 관심을 받았다. 하지만 커저가는 네트워크 시장에서 한계가 나타나기 시작했고 2012년 OAuth 2.0이 등장하게 되었다. OAuth 2.0에서 크게 바뀐 점은 다음과 같다. 모..
CS/Server
기존 JWT방식은 Access Token이 탈취당하게 되면 토큰을 조작하여 다른 사용자인 것처럼 할 순 없지만, 탈취당한 토큰의 주인 행세는 할 수 있었다. 이러한 점을 보완하기 위해 JWT의 강화버전인 Access Token & Refresh Token이 등장하였다. 사용자가 로그인 성공 시 Access Token, Refresh Token을 발급한다. Access Token은 탈취방지를 위해 유효기간을 짧게 설정하고, Refresh Token은 길게 설정한다. 이때, Refresh Token은 일반적으로 회원 DB에 같이 저장한다. 두 개의 토큰을 받은 사용자는 Refresh Token은 안전한 저장소에 저장하고, Access Token을 헤더에 실어 요청을 보낸다. Access Token이 유효하다..
웹사이트에서 로그인을 하면 다른 페이지에 들어가도 로그인이 유지된다. 또, 내정보 와 같은 로그인을 해야만 접속할 수 있는 페이지도 존재한다. 이것을 가능하게 하는 것이 서버 인증이다. 오늘은 서버인증에서 세션/쿠키와 JWT에 대해서 알아보도록 하겠다. 1. Cookie 로그인 성공 시 서버에서 쿠키에 사용자 정보를 넣어준다. 클라이언트는 브라우저 저장소에 쿠키를 저장하고, 다음 요청마다 쿠키를 서버에 같이 보내준다. 서버에서 쿠키를 통해 인증 유무와 유저정보를 알 수 있다. 문제점 쿠키에 유저정보가 그대로 들어가기 때문에 유저 정보가 그대로 노출됨. 사용자가 임의로 쿠키 값을 변경할 수 있음. 이러한 문제점으로 인해 쿠키/세션이 도입된다. 2. Cookie/Session 로그인 성공 시 고유한 ID값(..