我有一个 NodeJS Api,并且使用 Passport Azure AD Bearer Token 进行身份验证 - 当我进行全局配置时,一切都很好,但为了能够保持其干净,我需要为每个路由文件配置它。
我已经采用了首页上的逻辑,并将其作为中间件添加到路由文件中,但它似乎没有触发:
router.use(function (req, res, next) {
passport.initialize()
passport.use(bearerStrategy);
passport.authenticate('oauth-bearer', { session: false })
next();
})
配置对象也出现在这段代码之上。
最佳答案
我最终重命名了我的 Passport 配置对象和初始化对象,并为每个应用程序添加了 _appname ,并在 index.js 中将它们全部初始化,然后简单地在父路由上提及哪个 Passport 实例保护哪个实例。
代码如下:
// MIDDLEWARE
app.use(passport_myAppName.initialize());
passport_myAppName.use(bearerStrategy_myAppName)
app.use(passport_mySecondApp.initialize());
passport_mySecondApp.use(bearerStrategy_mySecondApp)
// ROUTES
app.use("/myAppName", passport_idtTV.authenticate('oauth-bearer', { session: false }), myAppName);
app.use("/mySecondApp", passport_idtTV.authenticate('oauth-bearer', { session: false }), mySecondApp);
关于node.js - NodeJS Passport 按路由配置,添加为中间件并且没有错误,但它不起作用/触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52965639/