본문 바로가기
프론트엔드 개발/웹

세션과 토큰 (Authentication)

by cozyzoey 2021. 3. 8.

사용자 인증(Authentication)은 크게 두가지 방식으로 할 수 있다.

세션(Sessions)과 토큰(Tokens)이다.

 

세션 방식

전통적인 방식으로 쿠키를 사용한다.

사용자가 서버에 로그인 요청을 보내면 서버는 세션을 저장하고 브라우저에 세션 ID를 보내준다.브라우저는 세션 아이디를 쿠키에 저장한다.이제 브라우저는 서버에 요청을 보낼때마다 쿠키(세션 ID)와 함께 보낸다.서버는 쿠키에 있는 세션 ID가 서버에 저장돼 있다면 응답을 보내준다.

 

세션 방식 Authentication

토큰 방식

세션 방식은 서버에서 데이터를 저장하기 때문에 동시접속자가 많으면  관리가 어렵다.이러한 문제를 해결하는 것이 토큰 방식이다. JWTs(JSON Web Tokens)라고도 한다.

사용자가 로그인 요청을 보내면 서버는 JWT를 만들어서 브라우저에 보내준다. JWT는 Header, Payload, Signature로 구성된다.

브라우저는 JWT를 localStorage에 저장한다.

사용자는 이제 요청을 보낼때 헤더에 JWT를 부착하여 보낸다.

서버는 JWT의 signature를 확인해서 맞다면 응답을 보내준다.

 

토큰 방식 Authentication

 

토큰 방식의 예로 OAuth(Open ID Authentication)를 들 수 있다.

OAuth는 아이디와 비밀번호를 DB에 저장하여 직접 관리하지 않고 구글, 페이스북같은 외부 서비스가 사용자를 대신 인증해주는 방식이다.

댓글