유성 프로젝트에 passport.js를 구현하려고하는데 여권을 통해 사용자 정보를 보내는 데 어려움이 있습니다.passport.js & Meteor 통합하기
처음에는 조직 측면에서 LDAP를 사용하는 인증 시스템을 구축하고 있습니다. y는 Shibboleth의 Identity Provider 인 http://shibboleth.net/products/identity-provider.html을 구입했으며 웹 응용 프로그램에있는 인증 프레임 워크로 passport-saml을 사용하려고합니다. 나는이 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.use의 함수를 통해 프로파일 객체를 전달하면됩니까?
정말 고마워요. 얼마나 많은 코드를 보여줘야할지 확신이 서지 않습니다. 그냥 의견을 남기면이 게시물을 개선 할 것입니다!