Express app.use () с 2 промежуточными программами не может работать вместе - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь применить «Basic Auth» ИЛИ «Bearer Token» ко всем маршрутам, начинающимся с «/ auth»

В том же файле маршрутизатора «routs / auth.js» я подготовил 2 маршрутизаторанабирает и экспортирует их вместе. Затем в "app.js" я пытаюсь применить оба промежуточного программного обеспечения к "app.use ()".

В результате не оба типа работают одновременно. Только промежуточное ПО 1-й позиции влияет на все маршруты "/ auth", то есть: -

app.use('/auth', [affecting-all-auth-routes, no-effect-on-all-auth-routes]);

Это ссылки, которые я пробовал: - http://expressjs.com/zh-tw/api.html#app.use

app.use('/', [r1, r2]);

Какой лучший способ проверки подлинности некоторых маршрутов на маршрутизаторе Express 4?

Я полагаю, это может быть связано с некоторой синтаксической ошибкой. Не могли бы вы дать мне некоторую идею?

// app.js

const express = require('express');

const authRouter = require('./routes/auth');

const app = express();

app.use('/auth', [authRouter.basic, authRouter.bearer]);

// route / auth.js

const express = require('express');
var routerBasic = express.Router();
var routerBearer = express.Router();

const basicAuth = require('express-basic-auth');
const jwtProtected = require('./middleware/jwToken');

routerBasic.use(basicAuth({
    users: { 'admin': '1234' }
}))
routerBearer.use(jwtProtected);

const login = require('../controllers/Auth/Basic/login');
const tokenRevoke = require('../controllers/Auth/Token/revoke-token');

routerBasic.post('/login', login);
routerBearer.post('/token/revoke', tokenRevoke);

module.exports = {
    basic: routerBasic,
    bearer: routerBearer
}

1 Ответ

0 голосов
/ 17 октября 2019

После дней исследований я наконец получил ответ.

Я не буду отделять тип аутентификации на уровне маршрутизатора, он будет на уровне маршрута: -

router.post('/login', basicAuthFunctionHere, login);
router.post('/token/revoke', jwtAuthFunctionHere, tokenRevoke);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...