У меня есть код Express JS, где я загружаю промежуточное ПО, которое определяет определенные конечные точки на маршрутизаторе.Конечные точки зависят от имени пользователя и выхода из системы.Я добавляю новую аутентификацию, и в этом случае я получаю свой токен авторизации от другого сервиса.Когда я получаю токен из другой службы, я не хочу, чтобы эти конечные точки загружались.
Это мой файл server.js
let app = express();
const authEndpoints = require('auth'); // this defines router endpoints
const alreadyAuth = require('checkHeaders'); // this middleware checks if request
// already has the auth headers and set res.locals.alreadyAuthenticated to true else false
app.use('/', alreadyAuth);
app.use('/',function(req, res, next) {
if(res.locals.alreadyAuthenticated === false)
next();
else {
console.log('authentication already exists skipping authEndpoints loading');
next('route');
}
}, authEndpoints); // login, logout
//continue here
app.use('/',nextMiddleware);
auth.js file
'use strict';
const express = require('express');
const path = require('path');
const router = express.Router();
router.get('/login', (req, res) => {
// some code
res.sendFile('login.html');
}
router.get('/logout', (req, res) => {
// some code
});
module.exports = router;
Я вижу журнал консоли, который печатает «аутентификация уже существует, пропуская загрузку authEndpoints», но конечные точки / login и / logout по-прежнему доступны.
Также, когда я комментирую весь раздел
app.use('/',function(req, res, next) {
if(res.locals.alreadyAuthenticated === false)
next();
else {
console.log('authentication already exists skipping authEndpoints loading');
next('route');
}
}, authEndpoints); // login, logout
, тогда конечные точки не загружаются.
Может кто-нибудь уточнить, если не следует использовать следующий путь («маршрут»).