创建一组用户,什么是好方法?

时间:2015-01-16 19:55:30

标签: node.js mongodb express passport.js

我在Node中构建了一个社交网络Web应用程序。我添加了一个组模型,用于创建一组像facebook这样的用户。

我一直在寻找一个我可以使用的npm模块,我搜索了谷歌和stackoverflow,但我还没有找到任何东西。

这是我添加到我的proyect的组模型。

var groupSchema = mongoose.Schema({
    name: String,
    motivation: String,
    destination: String,
    days: String,
    members: [String],
    profile: String
});

module.exports = mongoose.model('Group', groupSchema);

有没有人有这么好的方法呢?

注意:我使用groupController,我想使用3个动作。一个用于显示用户,一个用于添加用户,一个用于创建,但它不起作用。

1 个答案:

答案 0 :(得分:1)

不幸的是,还没有任何真正完善的节点授权框架(afaik)。

我是express-stormpath图书馆的作者,其执行了部分内容,但尚未成为授权规则的全部内容。

express-stormpath库的工作方式如下:

  • 您有一个帐户对象。
  • 您有一个群组对象。

您可以创建组,并将帐户分配给这些组。所以你可能有一组名为:

  • 管理员
  • 用户
  • anonymousUsers

然后,在每个组上,您可以使用此JSON blob存储权限数据。所以你可以这样做:

Group.customData.permissions = [' can_read',' can_write',...];

该库还提供了一些用于与用户/组合作的中间件工具,例如,您可以这样说:

app.get('/secret', stormpath.groupsRequired(['admins']), function(req, res) { 
  // if you get here, you must be in the admins group
});

如果您想查看它,可以在此处详细了解:https://docs.stormpath.com/nodejs/express/