작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
132
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랑 같은 값이고 수정불가능하게 설정되어있는 걸로 나오네요.
공식문서 읽어보시면 자세하게 전부 설명이 나옵니다.