首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成passport.js和Meteor

集成passport.js和Meteor
EN

Stack Overflow用户
提问于 2013-06-15 01:02:02
回答 2查看 4K关注 0票数 6

我正在尝试在我的Meteor项目中实现passport.js,但我有点卡住了,无法通过passport发送用户信息。

首先,我正在构建一个在组织端使用LDAP的身份验证系统。他们已经购买了Shibboleth的身份提供商http://shibboleth.net/products/identity-provider.html,并希望使用passport-saml作为驻留web应用程序的身份验证框架。我遵循了这个git教程,https://github.com/bergie/passport-saml,以及官方的passport.js教程,我已经在Meteor的服务器端用passport.js实现了这些方法。

代码语言:javascript
复制
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发送用户信息。是否通过passport.use中的函数传递配置文件对象来完成?

非常感谢,我不确定我应该显示多少代码,只需给我一个评论,我会改进这篇文章!

EN

回答 2

Stack Overflow用户

发布于 2013-10-26 02:37:24

这个问题是在Meteor在6.4更新对oAuth的支持之前被问到的,我假设用户已经弄明白了这个问题。对于我们这些搜索oAuth + Meteor的人来说,它现在集成得更好了。

不需要与passport.js打交道

请参阅此处的博客文章:https://www.meteor.com/blog/2013/06/10/meteor-064-new-oauth-packages-and-recommended-updates

基本上,您现在可以这样做:

代码语言:javascript
复制
$ meteor add accounts-twitter
$ meteor add accounts-facebook

等。

票数 1
EN

Stack Overflow用户

发布于 2013-11-28 02:05:44

我刚刚发布了一个陨石包,它允许现有密码支持的帐户基于saml的登录-在https://atmosphere.meteor.com/package/accounts-saml上查看它-包仍然有点粗糙,所以可能需要一些调整来与各种saml提供商一起工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17113692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档