2013-06-14 4 views
5

유성 프로젝트에 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의 함수를 통해 프로파일 객체를 전달하면됩니까?

정말 고마워요. 얼마나 많은 코드를 보여줘야할지 확신이 서지 않습니다. 그냥 의견을 남기면이 게시물을 개선 할 것입니다!

답변

1

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 

등 난 그냥 발표

0

을 기존 비밀번호 기반 계정에 대한 saml 기반 로그인을 허용하는 운석 패키지 - https://atmosphere.meteor.com/package/accounts-saml에서 확인하십시오. - 패키지는 여전히 약간 거친, 그래서 saml 다양한 공급자와 함께 작동하도록 약간의 조정이 필요할 수도 있습니다