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"
넣어주면 됨
'코드짜는 마케터' 카테고리의 다른 글
[Fetch] 백엔드에서 fetch 사용하기 (0) | 2023.01.04 |
---|---|
[input] range에 눈금 만드는 방법 (0) | 2023.01.04 |
[node.js] session에 저장된 쿠키 id를 데이터베이스에 저장하는 방법 (0) | 2023.01.03 |
[앱개발] 스파르타 코딩 클럽 2주차 (0) | 2023.01.03 |
[node.js]로그인 시 유저를 기억하게 만드는 법 1 (0) | 2023.01.03 |