Я пытаюсь включить сеансы только для некоторых маршрутов (те аутентификации), но у меня возникают проблемы, потому что страницы ошибок маршрутов:Экспресс Set Session для конкретных маршрутов
У меня есть это:
app.use(session({
secret: config.secrets.session,
saveUninitialized: false,
resave: false,
store: sessionStore,
proxy: true,
cookie: {
maxAge: config.token_duration,
secure: false
}
// rolling: false
}));
app.use('/api/user', require('./api/user'));
app.use('/api/auth', require('./api/auth'));
app.route(['/error/500','/error/404','/user/settings'])
.get((req, res) => {
res.sendFile(path.resolve(app.get('appPath') + '/index.html'));
});
app.route('/*/*')
.get(errors[404]);
app.use(errors[500]);
Итак, если я использую его так, все страницы в моем приложении создадут сеанс (который я не хочу). Если я переведу секцию сеанса после маршрутов ошибок, я никогда не доберусь до маршрутов api, потому что он достигнет маршрута 404.
Заранее спасибо
Я использовал свой первый подход, работал как шарм! Я уже пробовал ваш последний подход, но поскольку я использую промежуточное программное обеспечение безопасности (https://github.com/krakenjs/lusca), мне пришлось вызвать «app.use (session ...» вместо того, чтобы держать его в переменной. Спасибо! – Bernardo
@Bernardo - вы можете держать его в переменной. Я не уверен, почему вы думаете, что это не сработает. В 'app.use (session (...))' '' session() 'part выполняется только один раз при запуске приложения и возвращает новую функцию промежуточного программного обеспечения, используемую 'app.use()'. Именно это делает мой пример 'sessionHandler'. То же самое. – jfriend00
да, я думаю, когда я попытался, я ошибся при присвоении переменной – Bernardo