node.js - 一本护照中的 Nodejs 本地和 SSO
问题描述
我有一个简单的节点应用程序,它使用带有数据库的护照进行身份验证。
passport.use(new localStrategy({ usernameField: 'email' }, authenticateUser));
我想添加使用 SAML (SSO) 通过第三部分 IDP 进行身份验证的选项。
所以我在想的是,如果用户选择 SSO,输入他们所在的公司名称,那么我的代码将查找该公司的 SSO 配置并使用它加载护照。
如果用户未选择 SSO,则使用本地数据库对信息进行身份验证。
这可能吗?如果是,我应该如何加载策略。
passport.use(new MultiSamlStrategy(
{
passReqToCallback: true, //makes req available in callback
getSamlOptions: function(request, done) {
findProvider(request, function(err, provider) {
if (err) {
return done(err);
}
return done(null, provider.configuration);
});
}
},
function(req, profile, done) {
findByEmail(profile.email, function(err, user) {
if (err) {
return done(err);
}
return done(null, user);
});
})
);
解决方案
推荐阅读
- impala - Impala 并发查询延迟
- javascript - Javascript:如何将选定的文本沿多个 p 标签划分为每个标签的每个内容
- java - 在 for 循环中更新后未保存变量值
- linux - linux内核模块在源代码级别是否有任何模块依赖定义?
- ios - 在 iOS 应用程序中解析 Json 响应时出现问题,在字典中的“:”位置获取“=”
- build - 构建服务无法启动构建操作:内部错误:无法将系统信息发送到构建服务
- c# - 正则表达式 - 匹配捕获组中的第一个和最后一个字符
- java - 检查文件是否有剩余的序列化对象
- ruby-on-rails - 用于导轨模型中类型列的工厂机器人
- shell - 根据长度拆分文件