로그인하고 나서의 세션의 생성과 관리는 원칙적으로는 서버에서 하는 겁니다. 다만 클라이언트에서는 창이 열려 있는 동안에 세션 아이디를 갖고 있다가 실어보냄으로써 세션 아이디가 서버에 있는 세션 아이디와 같은지, 만료되지 않았는지 체크하기 위해 들고 있는 용도로 보시면 됩니다.
로그인 요청 -> 서버에서 세션 생성 및 수명 설정 -> session 를 회신 -> 브라우저에서 session id를 회신 받아서 cookie/sessionStorage에 저장 -> 이후의 요청을 보낼때마다 헤더에 session id 를 실어서 전송 -> 서버에서 요청을 받을 때 session id 가 유효한지 체크하여 정상 응답을 줄 지, 403 에러를 낼 지 판단함.
이런 메커니즘이라고 보시면 됩니다. 즉 프론트엔드 쪽에선 브라우저 저장소에 아이디만 저장하면 됩니다.
쿠키는 시간으로 수명을 설정할 수 있고 창을 닫아도 시간이 안 지나면 유지가 되는 대신 용량 제한이 있고 서버 요청시마다 값을 보내줍니다. sessionStorage는 창을 닫으면 같이 삭제됩니다. 보안적인 이슈 때문에 저는 sessionStorage.setItem() 사용을 가장 추천드립니다. localStorage 라는 것도 브라우저에 있지만, 일부러 지워주지 않는 이상 계속 남아있게 되니 세션아이디 저장용으론 추천하지 않습니다.