해결된 질문
작성
·
135
0
const express = require("express");
const path = require("path");
const morgan = require("morgan");
const cookieParser = require("cookie-parser");
const session = require("express-session");
const app = express();
app.set("port", process.env.PORT || 3000); // 전역 변수 느낌
app.use(morgan("dev"));
app.use(cookieParser("zerochopassword"));
app.use("/login", (req, res, next) => {
console.log('로그인 완료 세션 지급!');
session({
resave: false,
saveUninitialized: false,
secret: "zerochopassword",
cookie: {
httpOnly: true,
},
name: "connect.sid",
})(req, res, next);
});
app.use("/", (req, res, next) => {
if (req.session) {
express.static(path.join(__dirname, "public"))(req, res, next); // 미들웨어 확장법
} else {
next();
}
});
제가 원했던건 /login
url을 방문한 사용자만 session을 지급 받고 세션이 있어야 정적 리소스를 받아올 수 있게 해주고 싶었습니다.
/login
url을 방문하면 cookie에 connect.sid가 저장되는 것을 보고 원하던 대로 작동할 줄 알았지만 이후 /
url을 방문하니 req.session은 undefined 였습니다. 이유가 궁금합니다.