유저에게 쿠키를 보내야 함
쿠키? 먹는 것?!
쿠키를 알기 위해선 먼저 세션을 알아야 한다.
세션은
- 백엔드와 브라우저 간에 어떤 활동을 했는지 기억하는 것을 말함
- 세션이 사라지면 다시 로그인을 해야 함
- 즉, 세션은 브라우저와 백엔드 사이의 memory, history 같은 것
- 작동하기 위해선 백엔드와 브라우저가 서로에 대한 정보를 가지고 있어야 함
stateless(무상태)
- 백엔드와 브라우저가 한 번 연결되고 끊어지는 상태를 말함
유저를 기억하기 위해서는 뭔가를 남겨야 한다.
즉, 유저가 백엔드에 뭔가 요청할 때마다 누가 요청하는 지 알 수 있게
유저가 로그인 할 때마다 유저한테 뭔가를 줘야함(작은 text 같은 것) -> 유저가 백엔드에 뭔가를 요청할 때, 받은 텍스트도 함께 줘야함(보내달라고 요청함) -> 브라우져가 누구인지 알게 됨.
세션을 처리하는 미들웨어는
express-session
npm i express-session
설치 후에 server.js(앱과 미들웨어, 최상위 라우터 등을 한데 모아논 곳)에 session을 임포트함.
그리고 session을 router위에 적어줌
app.use(session({
secret:"Hello!",
resave:true,
saveUninitialized:true,
}))
app.use("/",rootRouter);
app.use("/videos",videoRouter);
app.use("/users",userRouter)
app.use(logger)
이렇게 하면 session이 웹사이트에 들어오는 모두를 기억할 수 있게 됨 - > 자동적으로 쿠키를 보낸 것이 됨
console에서 확인할 수 있음
//백엔드가 기억하고 있는 유저를 보여주게 하는 console
app.use((req,res,next) => {
req.sessionStore.all((error,sessions) => {
console.log(sessions)
next();
})
})
접속할 때마다 세션에서 만든 ID를 통해서 접속한 사람이 누구인지 알 수 있지만, 이는 서버가 열려 있을 때 가능
즉, 서버를 껏다가 다시 켜면 세션의 id는 사라져 버림. 이를 위해선 MongoDB에 저장해야 함
(같은 컴퓨터 같은 와이파이 상에서라도 브라우저마다 세션의 id가 다르다.)
서버는 쿠키에서 세션 id를 가져와 브라우저에게 보내줌. 서버는 그 id를 보고 사용자가 누군지 확인함
브라우저한테 보내준 id를 요청에 담아서 서버가 다시 브라우저에게 보내줌
어떤 url에 들어가더라도 id를 제출해서 누가 들어 왔는 지 확인하게 해줌.
'코드짜는 마케터' 카테고리의 다른 글
[node.js] session에 저장된 쿠키 id를 데이터베이스에 저장하는 방법 (0) | 2023.01.03 |
---|---|
[앱개발] 스파르타 코딩 클럽 2주차 (0) | 2023.01.03 |
[시멘틱 태그] 웹사이트 구성에 의미를 부여하는 태그 (0) | 2023.01.03 |
비번을 비번답게 만들어주는 기술 password hassing(패스워드해싱) (0) | 2023.01.02 |
[JAVA] JAVA & Spring 기초 공부 (0) | 2023.01.02 |