【问题标题】:NodeJS social + authorization with Passport or Everyauth带有 Passport 或 Everyauth 的 NodeJS 社交 + 授权
【发布时间】:2013-10-24 19:33:54
【问题描述】:

我的问题可能有点琐碎,因为我来自 Java 背景。

Node.js 需要以下内容

  1. 用户应该能够同时连接到多个社交网站,例如 Facebook、Google 和 Twitter。
  2. 站点/模块必须能够向每个连接的站点发送身份验证请求(请求可能不同,但应该能够发送),例如在墙上发帖、发推文等。
  3. 用户(可能连接到多个帐户)必须能够拥有角色,并且服务器端 (Node.js) 将仅 允许 操作由一组角色执行。

我也打算用 MeteorJS,有什么影响吗?这些库是否相互配合?

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

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 使用 Meteor 真的又快又容易。检查这个:docs.meteor.com/#accountsui
  • 我的下一个问题是使用 Angular 有意义吗?因为流星无论如何都像角度一样工作。如果有用例,如果有,请告诉我从atmote.meteor.com中选择哪个包,我在这里看到了几个。

标签: node.js meteor passport.js everyauth


【解决方案1】:

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2014-10-24
    • 2014-12-04
    • 2017-01-12
    • 2018-02-02
    • 2014-12-01
    相关资源
    最近更新 更多