본문 바로가기
tech documents/node

cookie, session과 passport.js

by kimtahen 2022. 3. 2.
반응형

cookie | session

cookie는 웹서버에서 클라이언트에게 발급하는 것이고, session은 서버에서 이 cookie를 통하여 클라이언트의 정보를 저장해놓은 것이다. 따라서 클라이언트가 서버에 접속할 때마다, 클라이언트는 웹 서버에게 cookie를 포함하여 요청하고, 웹서버는 이 cookie를 통해 서버에 저장해 놓은 session 에서 검색하여 클라이언트의 정보를 알아낸다.

passport serialize, deserialize

    passport.serializeUser((user,done)=>{
        done(null,user);
    });

    passport.deserializeUser((user,done)=>{
        done(null, user);
    });

serializeUser은 로그인 시 done(null, user)를 통해서 session 에 user의 정보를 저장한다. deserializeUser은 클라이언트의 요청이 있을 때마다, 클라이언트의 cookie로 session을 조회하여 user의 정보를 가져온다.

serializeUser에서 session에 user의 정보를 저장할때 id, password 등 모든 정보를 저장하는 것이아니라, id만 저장하여 deserializeUser에서 user의 정보를 다시 조회하는 방식을 사용해야한다. session에 저장되는 정보의 양이 많은 경우 서버의 자원을 많이 소모하기 때문이다.

반응형

댓글