Express - промежуточное ПО для пропуска сеанса OpenAPI - PullRequest
0 голосов
/ 11 февраля 2020

У меня возникают проблемы с сохранением промежуточного программного обеспечения express на express -openapi

В моем server.js есть промежуточное программное обеспечение express, которое дает мне request.session объект для редактирования / добавления значений (например, когда пользователь входит в систему, я устанавливаю request.session.isLoggedIn в true.

/ routers / Auth. js

router.post('/login', function(req, res, next){
    req.session.isLoggedIn = true;
    res.send("success");
});
export default router;

Я импортирую вышеупомянутый маршрутизатор на мой server.js

/ сервер. js

import authRouter from './routers/Auth.js';
import session from 'express-session';
server.use(
    session({
        secret: configs.sessionSecret,
        key: "myWebsite",
        cookie: {
            path: "/",
            httpOnly: true,
            maxAge: 24 * 3600 * 1000 // One day for example
        },
        store: new RedisStore(),
        resave: true,
        saveUninitialized: false,
        rolling: true
    })
);
server.use(authRouter, '/');

С последующей инициализацией express -openapi

/ server . js

initialize({
    apiDoc: {
        ...schema,
    },
    app: server,
    docsPath: '/spec',
    paths: path.resolve(__dirname, 'api'),
});

Схема - это просто мой файл openapi yaml

Теперь все пути внутри папки api имеют только экземплярную копию req.session (для знакомых с express -openapi), но если я сделаю HTTP-запрос к /login, ни один из путей внутри папки api не сможет получить доступ к req.session.isLoggedIn, только путь, заданный express маршрутизатор может получить к нему доступ. Я не знаю, что я что-то упустил? Express -OpenAPI по какой-то причине не обновляет промежуточное программное обеспечение сеанса.

...