使用Passport或Everyauth进行NodeJS社交+授权

时间:2013-10-16 15:32:09

标签: node.js meteor passport.js everyauth

因为我来自Java背景,所以我的问题可能有点微不足道。

我需要以下Node.js

  1. 用户应该可以同时连接到Facebook,Google和Twitter等多个社交网站
  2. 网站/模块必须能够向每个连接的网站发送身份验证请求(请求可能不同,但应该能够发送),例如张贴到墙上,发推文等等。
  3. 用户(可能连接到多个帐户)必须能够拥有角色,服务器端(Node.js)才能允许操作由一组角色执行。
  4. 我也计划使用MeteorJS,它有什么影响吗?这些图书馆能够很好地相互配合吗?

    我不确定我的要求是否可行,请提出建议。 (可能有例子。)

1 个答案:

答案 0 :(得分:0)

https://github.com/ganarajpr/express-angular绝对涵盖了您的一些要求,并且开箱即用,作为网络应用的种子。

它使用everyauth支持Google,facebook和twitter集成。

要在Facebook墙上发帖,一旦通过身份验证,您只需要请求模块

请参阅http://runnable.com/UTlPM1-f2W1TAABY/post-on-facebook了解实时演示

对于基于组的角色,有多种方法可以实现此目的:

  1. 使用https://github.com/ForbesLindesay/connect-roles,例如:

    app.get('/', function (req, res) {
      if (req.user.is('admin')) {
        res.render('home/admin');
      } else if (user.can('login')) {
        res.render('home/login');
      } else {
        res.render('home');
      }
    })
    
  2. 使用常规快递路由,请参阅Group/rule-based authorization approach in node.js and express.js

  3. 希望这有帮助。