Это может звучать как очень простой / глупый вопрос, но я ничего не могу найти в Интернете.
Я использую Express 4 с NodeJS и пытаюсь реализовать сессию, используя express-session
middleware . Я хочу использовать сеанс, чтобы разрешить / запретить определенные маршруты для разных пользователей.
Я знаю, что могу использовать сеанс на условном маршруте:
const express = require('express');
const Router = require('express').Router;
const router = new Router();
const session = require('express-session');
const sessioning = session({...});
router.post('/login', sessioning, (req, res) => {
});
Но это не то, что я пытаюсь сделать. Это запустит сеанс даже при неудачной попытке входа в систему.
Я пытаюсь начать сеанс только после успешной попытки входа в систему:
const express = require('express');
const Router = require('express').Router;
const router = new Router();
const session = require('express-session');
router.post('/login', (req, res) => {
/* ... Login validations */
if (login === 'success'){
/* ... start session */
}
res.json({...});
});
Чтобы я мог запретить неаутентифицированным пользователям защищенные маршруты:
router.get('/protected', (req, res) => {
if (!req.session){
res.status(401);
res.end();
return;
}
/* ... */
});
Если я устанавливаю сеанс непосредственно на защищенных маршрутах, то он не может проверить, вошел ли пользователь в систему.
Может кто-нибудь указать мне правильное направление?