NodeJS Passport按路由配置,作为中间件添加并且没有错误但它不起作用/触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS Passport按路由配置,作为中间件添加并且没有错误但它不起作用/触发相关的知识,希望对你有一定的参考价值。

我有一个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();
})

配置对象也出现在此代码之上。

答案

我最终重命名我的护照配置对象和初始化对象,每个应用程序添加了一个_appname,并在index.js中初始化它们,然后简单地在父路由上提到哪个护照实例保护哪个。

代码如下:

    // 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);

以上是关于NodeJS Passport按路由配置,作为中间件添加并且没有错误但它不起作用/触发的主要内容,如果未能解决你的问题,请参考以下文章

NodeJs:错误401(未经授权)我正在使用passport-jwt

Nodejs和PassportJs:如果身份验证失败,则不会调用passport.authenticate后重定向中间件

Node/Express 的 Passport 身份验证中间件 - 如何保护所有路由

NodeJs + ExpressJs 应用程序路由奇怪的行为

测试受保护的 api 调用、mocha、supertest、node js、passport

Passport.authenticate 和 logout 方法和 flash 不起作用,直到我们在重定向后路由到新页面