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

标签 node.js express passport.js passport-azure-ad

我有一个 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/

相关文章:

express - 使用express.js + Passport.js 进行 session

node.js - 将写入流中的文件直接传输到客户端作为在 Node.js 中下载

javascript - MongooseJS 模式关系

javascript - 使用 pug 文件在 html 中显示 JS 文件中的变量

node.js - Express cookie session 不会保留在 POST 请求中

javascript - 使用 Passport.js 对用户注册提出错误请求

mysql - Nodejs Passport 设置困惑

mongodb - (Node.js/Express.js) 错误 : Schema hasn't been registered for model "document"

node.js - 如何在nodejs模型中获取用户ip?并在我的表格列 ip_address 中更新

ExpressJS 和 PassportJS 注销 - 后退按钮