<aside>
💡 session과 cookie를 이용해 매우 간단한 로그인 로그아웃 기능을 구현해 보자!
</aside>
[참고링크!]
https://hahahoho5915.tistory.com/32
이번에는 session과 cookie를 이용해 간단한 로그인 로그아웃 기능을 구현해 보려고 한다.
왜 session과 Token기반 인증이 유용한가?
HTTP는 stateless(무상태성), **connectionless(비연결성)**이라는 성질을 가지는데,
즉, 서버는 클라이언트를 식별할 수 없고(stateless), 요청에 대해 한번 응답을 하면 연결이 끊어진다.(비연결성)
그렇기 때문에, 우리는 장바구니에 하나의 아이템을 넣을때마다 새로 로그인을 해야 하는 상황이 생기는데,
이러한 번거러운 상황을 해결 할 수 있는 것이 바로 session과 token기반의 인증방식인 것이다.
⭐️Session기반 인증과정⭐️
- Client → Server: 로그인요청(ID, PW 보내기)
- Server → DB: 받은 PW를 해싱하고, ID와 해싱된 PW 를 DB에 있는 ID와 해싱되어있는 PW를 비교
- Server → SessionStore: 회원이 맞다면, 세션을 생성하고 Session Store에 저장
- Server → Client: 생성된 세션 ID를 쿠키에 담아 보내기(set-cookie: connect.sid=1ed234df)
- Client → 쿠키저장소: 받은 세션ID를 쿠키저장소(로컬)에 저장
- Client → Server: 내 정보조회(이미 한번 방문하여 쿠키가 있는 상황이기때문에,
{withCredential: true}를 사용하면 쿠키가 자동생성되어 Server에 보내진다.)