gpt4 book ai didi

meteor - 集成passport.js和Meteor

转载 作者:行者123 更新时间:2023-12-04 15:59:08 25 4
gpt4 key购买 nike

我正在尝试在我的 Meteor 项目中实现passport.js,但我有点无法通过 Passport 发送用户信息。

首先,我正在构建一个在组织方面使用 LDAP 的身份验证系统。您已经购买了 Shibboleth 的身份提供商,http://shibboleth.net/products/identity-provider.html并希望使用passport-saml 作为驻留在Web 应用程序的身份验证框架。我遵循了这个 git 教程,https://github.com/bergie/passport-saml ,以及官方的passport.js教程,我已经在Meteor的服务器端实现了passport.js中的方法。

Meteor.startup(function () {
var require = Npm.require;
passport = require('passport');
var SamlStrategy = require('passport-saml').Strategy;

passport.use(new SamlStrategy(
{
path: '/login/callback',
entryPoint: 'https://openidp.feide.no/simplesaml/saml2/idp/SSOService.php',
issuer: 'passport-saml'
},
function(profile, done) {
findByEmail(profile.email, function(err, user) {
if (err) {
return done(err);
}
return done(null, user);
});
}
));

Meteor.Router.add('/login/callback', 'POST', function(req, res){
passport.authenticate('saml', { failureRedirect: '/', failureFlash: true });
res.redirect('/');
});

Meteor.Router.add('/login', 'POST', function(req, res){
passport.authenticate('saml', { failureRedirect: '/', failureFlash: true });
res.redirect('/');
});

var app = __meteor_bootstrap__.app;
app.use(passport.initialize());
app.use(passport.session());

passport.serializeUser(function(user, done) {
done(null, user.id);
});

passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});

});

我现在的问题是如何获得 Passport 以发送用户信息。是通过passport.use 中的函数传递配置文件对象来完成的吗?

非常感谢,我不确定我应该显示多少代码,给我一个评论,我会改进这篇文章!

最佳答案

这是在 Meteor 在 6.4 中更新对 oAuth 的支持之前被问到的,我假设用户已经弄清楚了这一点。对于我们这些正在搜索 oAuth + Meteor 的人来说,它现在集成得更好。

无需弄乱passport.js

请参阅此处的博客文章:https://www.meteor.com/blog/2013/06/10/meteor-064-new-oauth-packages-and-recommended-updates

基本上你现在可以这样做:

$ meteor add accounts-twitter
$ meteor add accounts-facebook

等等。

关于meteor - 集成passport.js和Meteor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17113692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com