개발/프로젝트

[세션 / 토큰 로그인 프로젝트] 구성 및 개요

prpn97 2023. 7. 6. 21:42

로그인에 대한 비교를 하는 것이므로 프론트는 간단하게만 가져가고, 

백엔드 중심으로 코드를 짜보려고 한다. 

 

프론트에서는 한 페이지에 세션로그인, 토큰로그인을 각각 나누어

로그인 성공시 백엔드에서 보내준 메세지를 반환한다. 

 

이제부터가 시작이다. 통신은 확인했으니, 본격적으로 비교해보자.

 

 

세션 로그인은 클라이언트의 정보를 서버측 저장소에 저장하고 사용한다.

토큰 로그인은 클라이언트의 정보를 클라이언트측(브라우저)에 저장하고 사용한다.

             좌) 세션 로그인                                                                                                     우) 토큰 로그인 

백엔드에서 세션 로그인을 할 때 할 일은 이렇게 나뉜다.

1~3. 사용자를 확인하고 서버측 저장소에 회원정보 세션을 생성

4~5. 세션 식별자(Session ID)는 클라이언트에게 쿠키(Cookie) 형태로 전달

 

이후 인증과정이 필요한 서비스에서 6번부터 클라이언트와 서버는 쿠키를 주고받으며

해당 쿠키를 검증하여 이용여부를 결정하게 된다.

 

 

백엔드에서 토큰 로그인의 과정은 다음과 같다. 

1~3. 사용자를 확인하고 토큰 발급

이후 발급받은 토큰을 클라이언트와 서버가 주고받으며 검증하게 된다.

 

위의 자료를 보면 알 수 있듯이 access, refresh 로 토큰이 나뉘는데,

백엔드에서 access 토큰으로 검증을 하지만, 토큰의 만료시간을 두고 만료되었을 경우

프론트에서 refresh 토큰으로 access 토큰이 만료되었으니 새롭게 발급해달라는 요청을 한다.

그리고 백에서는 새로운 access토큰을 발급해준다. 

 

전반적으로는 이렇게 정리해볼 수 있고, 코딩을 포함한 자세한 내용은 다음 포스팅에서 다뤄보겠다.

728x90