본문 바로가기

코드짜는 마케터

[쿠키] property를 알아보자

cookies의 property에는 

 

Name, Value, Domain, Path, Expires/Max-Age, Size 등

 

1. secret은 쿠키에 sign할 때 사용하는 string (backend가 쿠키를 줬다는 걸 보여주기 위함)

       - 누군가 내 쿠키를 훔쳐서 나인척 할 수도 있기 때문에 secret이 필요함

       - string으로 작성해야 하는 강력하고 길게 만들어야 함

 

2. Domain은 쿠키를 만든 backend가 누구인지를 알려줌

 

3. Expire은 쿠키가 만료되는 시점을 말함. 만료날짜를 지정하지 않으면 session cookie로 설정. 사용자가 닫으면 session cookie도 끝이남

 

4. Max-Age는 말그대로 언제 세션이 만료되는 지를 알려줌 (20000 밀리초 . 즉 20초 이후 쿠키 만료, 로그인 해제)

 

 

secret이랑 DB 주소는 숨겨 줘야함. 

- .env 파일을 만들어서 gitignore에 적어줘야 함. 

- .env파일에는 숨기고 싶은 것들을 넣어주면 되고, 안에 작성할 때, 변수명을 대문자로 적어야함

 

app.use(session({
    secret:process.env.COOKIE_SECRET,
    resave:false,
    saveUninitialized:false,
    cookie: {
        maxAge:20000,
    },
    store:MongoStore.create({mongoUrl:process.env.DB_URL})
}))

 

이렇게만 적어주면 process.env 파일을 백엔드가 읽지 못함으로 새로운 패키지를 깔아야 함

 

npm i dotenv

 

패키지를 깐 후에 

server.js(최상위 라우트와 여러가지 middleware가 있는 곳)의 맨 위 (import 들 보다 위에)

require("dotenv").config();

를 사용해주면 env안에 있는 파일을 백엔드가 읽을 수 있게 됨 ( 이때는 숨기고자 한 것들의 변수를 사용 한 곳 마다 require을 써줘야함)

 

한 방에 해결하려면 전체에 영향을 주는 js 파일 상단에 

import "dotenv/config"

넣어주면 됨