원시 로그인 기능을 빌드하고 나중에 사용할 수있는 세션을 만들려고하는지 테스트하려고합니다. 세션 데이터를 유지하기 위해 express-session과 redis를 사용하고 있습니다. 여기 내 설정은 다음과 같습니다쿠키가 Express 세션 데이터를 예상대로 반환하지 않음을 요청했습니다.
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
app.use(express.static(path.join(__dirname, 'client/build')))
app.use(cookieParser(process.env.COOKIE_SECRET))
app.use(session({
store: new redisStore({
host: '127.0.0.1',
port: 6379
}),
secret: process.env.SESSION_SECRET,
cookie: {maxAge: 1800},
name: 'appName',
resave: false,
saveUninitialized: false
}))
app.use('/', routes)
그럼 내 로그인을 제공
router.post('/api/login', (req, res) => {
req.session.userId = req.body.id
req.session.email = req.body.email
//do I need to send out a cookie with the session created here?
res.set({'Set-Cookie': 'appSession=' + req.session.id})
res.status(200).send({
"message": `User ${req.body.id} logged in with cookie ${req.session.id}`
})
})
는 그 다음 내가 읽고 내가 다시 쿠키를 보내는 요청에 대해이 세션에 추가 할 수 있어야합니다 나의 이해이다. 내가 헤더 Cookie: appName=${sessionID}
api/login
경로에서 만든 sessionID와를 사용하여 우편 배달부를 사용하여이 API에 요청을 보내고
router.post('/api/test' (req, res) => {
if(req.session && req.session.userId) {
res.status(200).send({"message": `User ID ${req.session.userId} is authenticated`})
} else {
res.status(401).send({"message": `User ID ${req.session.id} is not authenticated`})
}
})
: 여기에 테스트 내 API입니다. 항상 새로운 sessionId를 만들고 401을 반환합니다.
이해가 정확합니까? 그렇다면이 예상되는 동작을 어떻게 만듭니 까?