node.js - 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);
推荐阅读
- css - Material-ui makeStyles 默认覆盖
- bash - 使用 Bash 脚本构建/部署 Docker
- python - 熊猫:转义列中的所有空格
- github - 如何在 github Action 中传递 json 文件?
- c# - C# ASP.Net Core 在 MongoDB 中创建唯一的电子邮件字段
- reinforcement-learning - 如何在pybullet中模拟另一个对象平衡?
- sql-server - 在 SSIS 中将 VARCHAR(MAX) 字段从 SQL 导出到 Excel
- java - 在接口声明上使用@PreAuthorize
- mysql - 检索所有帖子计数与日期排序日期错误
- ios - 尝试将图像叠加到 CALayer 上并保留子视图 (UITextView) 的位置