Meteor projemde passport.js'yi kullanmaya çalışıyorum ve kullanıcı bilgilerini pasaportla takıp kaldım.Tümleşik passport.js ve Meteor
İlk önce, kuruluş tarafında LDAP kullanan bir kimlik doğrulama sistemi yapıyorum. Y, Shibboleth'in Kimlik Sağlayıcısı'nı (http://shibboleth.net/products/identity-provider.html) satın aldı ve web uygulamasını barındıran kimlik doğrulama çerçevesi olarak pasaport-saml kullanmak istiyor. Bu git eğitimi, https://github.com/bergie/passport-saml ve resmi passport.js öğreticisini takip ettim ve yöntemleri Meteor'ın sunucu tarafında passport.js'de uyguladım.
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);
});
});
});
Sorum şu ki, kullanıcı bilgilerini göndermek için pasaportumu nasıl alabilirim. Pasport.use işlevinde bir profil nesnesini geçirerek yapılır mı?
Çok teşekkürler ve ne kadar kod göstermem gerektiğinden emin değilim, sadece bir yorum bırakın ve bu yazıyı geliştireceğim!