Я использую Express и Express -сессии для хранения идентификатора текущего пользователя. При входе в систему идентификатор пользователя устанавливается в сеансе, однако, если я перехожу на другую страницу, идентификатор пользователя устанавливается как неопределенный. Почему это?
Ниже приведен API. Маршруты аутентификации будут выполняться всякий раз, когда загружается страница, чтобы убедиться, что пользователь вошел в систему.
const express = require('express');
const router = express.Router();
const bodyParser = require('body-parser');
const session = require('express-session');
const user = require('../components/user');
let sess;
router.post('/createUser', (req, res) => {
user
.createUser({
username: req.body.username,
password: req.body.password,
email: req.body.email
})
.then(() => res.sendStatus(200))
});
router.post('/login', (req, res) => {
sess = req.session;
user
.authenticate({
username: req.body.username,
password: req.body.password
})
.then(({ success, user }) => {
if (success) {res.sendStatus(200); sess.userID = user;}
else res.sendStatus(401)
})
});
router.post('/auth', (req, res) => {
sess = req.session;
if (sess.userID === undefined){
res.redirect('/');
}else{
res.sendStatus(200);
}
});
router.post('/auth/logout', (req, res) => {
sess = req.session;
sess.userID = undefined;
res.redirect('/');
});
router.post('/auth/createCheck', (req, res) => {
sess = req.session;
console.log(sess.userID);
if (!sess.userID === undefined){
res.redirect('/');
}else{
res.sendStatus(200);
}
});
module.exports = router;