• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

session 질문입니다.

22.04.14 23:56 작성 조회수 100

0

session 미들웨어를 사용하게 되면

요청시마다 고유의 세션 아이디가 만들어지고

그거를 쿠키로 보내주려면

원하는 API(엔드포인트)에서

req.session.name = '아무거나'

해주면 되는건가요?

 

1. req에 등록했는데 어떻게 쿠키로 보내지는건지

2. 왜 name으로 등록해줘야 하는건지?(원래라면 유저 정보를 등록하는건가요?)

3. 암호화된 쿠키의 값은 무엇이 전송되는건지(고유 id인가요?)

4. 세션 객체에는 어떤식으로 저장이 되어있는건지

session {

  sdsdlasjdaslj (고유id=키값) : {

          name: '아무거나'

   } 

이렇게 되는건가요?

 

답변 1

답변을 작성해보세요.

0

1. express-session이 알아서 쿠키로 만들어줍니다.

2. name이든 뭐든 저장하고 싶은 걸 저장하시면 됩니다.

3.네 고유아이디를 secret으로 암호화한 겁니다.

4. 스토어마다 저장 방식이 다 달라서 아실 필요 없습니다. 저도 모릅니다. 그냥 알아서 저장하고 알아서 잘 찾는다고 생각하세요.

5. 스토어가 알아서 주기적으로 없앱니다.

6. 무조건 현재 상태 저장이라서 여러 요청이 여러 서버로 분산되어 동시에 들어오면 각자 다른 세션값을 저장해 문제가 생길 수 있습니다. true로 둘 필요가 거의 없습니다.

7. session의 id는 req.sessionID인데 req.session.id랑 같은 값이고 수정불가능하게 설정되어있는 걸로 나오네요.

공식문서 읽어보시면 자세하게 전부 설명이 나옵니다.