2013-06-14 10 views
5

私はMeteorプロジェクトでpassport.jsを実装しようとしています。passport.jsとMeteorの統合

まず、組織の側でLDAPを使用する認証システムを構築しています。 yはShibbolethのIdentity Provider、http://shibboleth.net/products/identity-provider.htmlを購入しており、Webアプリケーションに存在する認証フレームワークとして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を探している人にとって、今はもっと良く統合されています。 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

を私はちょうどリリースさpassport.js

ここにブログの記事を参照してくださいと混乱に

必要がありません既存のパスワードでバックアップされたアカウントのためのsamlベースのログインを可能にする隕石パッケージ - https://atmosphere.meteor.com/package/accounts-samlでそれをチェックしてください - パッケージはまだです少し粗いので、さまざまなsamlプロバイダと連携するために調整が必要な場合があります