Ich versuche, pass.js in meinem Meteor Projekt zu implementieren, und ich bin irgendwie stecken Benutzerinformationen über den Pass zu senden.Integration von pass.js & Meteor
Zunächst erstelle ich ein Authentifizierungssystem, das LDAP auf der Organisationsseite verwendet. Sie haben Shibboleths Identity Provider, http://shibboleth.net/products/identity-provider.html, gekauft und möchten den Pass-Saml als Authentifizierungs-Framework für die Web-App verwenden. Ich habe dieses Git Tutorial, https://github.com/bergie/passport-saml, sowie das offizielle Passport.js Tutorial gefolgt und ich habe die Methoden in pass.js auf der Serverseite von Meteor implementiert.
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);
});
});
});
Meine Frage ist jetzt, wie bekomme ich Pass, um die Benutzerinformationen über zu senden. Wird ein Profilobjekt über die Funktion im Pass übergeben?
Vielen Dank und ich bin mir nicht sicher, wie viele Codes ich zeigen sollte, lassen Sie mich einfach einen Kommentar und ich werde diesen Beitrag verbessern!