핵심 키워드: JWT (Jason Web Token), Cookie, Token, Session
인증방식에는 JWT & Token (acess token 생성하는 대표적 기술) VS. Cookie & Session 로 크게 두가지가 있다고 알려져있다. http는 'stateless' 방식, 즉 같은 홈페이지 상에서도 다른 페이지로 이동하면 데이터가 자연스럽게 이동하는 것이 아니기 때문에, 로그인페이지를 벗어나서도 지속적으로 사용자의 아이덴티티를 인지하기 위해서는 어딘가에 정보를 저장해 두었다가 다시 불러와서 그 페이지에서 사용자의 authorization을 판단해 주어야 하는 것이다.
최초의 로그인시 쿠키방식에서 서버는 세션정보(session)를 서비스를 제공해주는 회사의 데이터베이스로 보내고 세션 id는 쿠키에 담아 유저에 보내는반면, JWT방식에서는 서버가 encode된 Token을 유저에게 보내 브라우저에 저장한다. 로그인시 서버에서 각각 세션이나 토큰을 부여받아 브라우저에 저장한다는 점에서는 같지만 로그인 이후 클라이언트의 페이지요청에 사용자를 인증하는 과정에서 차이점이 두드러진다. 세션아이디를 서버로 보내면 데이터베이스까지 내려가서 사용자의 세션정보를 찾고 비교해야하는 반면 토큰은 서버에서 토큰의 유효성만 확인하면되므로 사용자의 트래픽의 영향을 덜 받을 수 있다. 아래의 그림에서 한눈에 두가지 방식의 진행과정을 비교해볼수있다.
차이점
토큰방식이 둘중 절대적으로 우월한 방식이 있는게 아니라 회사의 규모나 (세션방식은 더 많은db를 요구하니까) 웹/앱이 제공하고자 하는 서비스에 맞춰 더 잘맞는 방식을 선택하면 된다.