로그인에 대한 비교를 하는 것이므로 프론트는 간단하게만 가져가고,
백엔드 중심으로 코드를 짜보려고 한다.
프론트에서는 한 페이지에 세션로그인, 토큰로그인을 각각 나누어
로그인 성공시 백엔드에서 보내준 메세지를 반환한다.
이제부터가 시작이다. 통신은 확인했으니, 본격적으로 비교해보자.
세션 로그인은 클라이언트의 정보를 서버측 저장소에 저장하고 사용한다.
토큰 로그인은 클라이언트의 정보를 클라이언트측(브라우저)에 저장하고 사용한다.
백엔드에서 세션 로그인을 할 때 할 일은 이렇게 나뉜다.
1~3. 사용자를 확인하고 서버측 저장소에 회원정보 세션을 생성
4~5. 세션 식별자(Session ID)는 클라이언트에게 쿠키(Cookie) 형태로 전달
이후 인증과정이 필요한 서비스에서 6번부터 클라이언트와 서버는 쿠키를 주고받으며
해당 쿠키를 검증하여 이용여부를 결정하게 된다.
백엔드에서 토큰 로그인의 과정은 다음과 같다.
1~3. 사용자를 확인하고 토큰 발급
이후 발급받은 토큰을 클라이언트와 서버가 주고받으며 검증하게 된다.
위의 자료를 보면 알 수 있듯이 access, refresh 로 토큰이 나뉘는데,
백엔드에서 access 토큰으로 검증을 하지만, 토큰의 만료시간을 두고 만료되었을 경우
프론트에서 refresh 토큰으로 access 토큰이 만료되었으니 새롭게 발급해달라는 요청을 한다.
그리고 백에서는 새로운 access토큰을 발급해준다.
전반적으로는 이렇게 정리해볼 수 있고, 코딩을 포함한 자세한 내용은 다음 포스팅에서 다뤄보겠다.
728x90
'개발 > 프로젝트' 카테고리의 다른 글
[세션 / 토큰 로그인 프로젝트] 진행 과정(1) 쿠키 전달한 이후 어떻게 검증할 것인가? (0) | 2023.07.08 |
---|---|
[세션 / 토큰 로그인 프로젝트] 진행 전 공부 과정.. express에서 지원하는 쿠키? 세션 쿠키? 쿠키와 세션 구분하기 (0) | 2023.07.07 |
[엘리스트랙 SW 4기 | 2차 프로젝트 복기] 소통왕 프로젝트 / 별도의 docs를 작성하여 jsdoc 주석 적용 (0) | 2023.07.02 |
[엘리스트랙 SW 4기 | 2차 프로젝트 복기] 소통방법 구체화하기 | 데이터 모델링 / 시퀀스 다이어그램(1) (0) | 2023.07.01 |
[엘리스트랙 SW 4기 | 2차 프로젝트] 트러블슈팅 - 미들웨어(multer 이미지 업로드 관련 이슈) (0) | 2023.06.09 |