registering/login 使用社交网络时如何分配用户角色?
How do I assign user roles when registering/login with social networks?
我正在使用社交帐户服务为我的应用程序提供 signup/login 各种社交网络。是否可以将使用社交登录的用户分配到角色 and/or 组?我查看了 accounts-role 包和其他地方,但我不知道在哪里添加挂钩,在哪里定义角色等。
Meteor.users
集合就像任何其他集合一样,社交帐户服务所做的唯一一件事就是将用户添加到该集合并向您的用户添加一个 facebook/twitter/github 对象,其中包含一些社交网络特定信息。您可以像普通 accounts-password
用户帐户一样对其进行编辑,并像角色一样向其添加任何额外数据。您可以使用 Accounts.onCreateUser
方法添加默认角色,然后像这样调整角色:
Accounts.onCreateUser(function(options, user) {
user.role = "standard"
return user;
});
默认情况下,用户对象仅限于配置文件对象,因此如果您想使用添加到用户对象的新角色数据,您需要执行正常的 publication/subscription它的。或者,如果您不想这样做,您可以将角色添加到配置文件对象中:
Accounts.onCreateUser(function(options, user) {
user.profile.role = "standard"
return user;
});
然后确保不允许客户端调用使用 allow/deny 规则对其进行编辑。我猜你不希望人们想要改变他们的角色!
我正在使用社交帐户服务为我的应用程序提供 signup/login 各种社交网络。是否可以将使用社交登录的用户分配到角色 and/or 组?我查看了 accounts-role 包和其他地方,但我不知道在哪里添加挂钩,在哪里定义角色等。
Meteor.users
集合就像任何其他集合一样,社交帐户服务所做的唯一一件事就是将用户添加到该集合并向您的用户添加一个 facebook/twitter/github 对象,其中包含一些社交网络特定信息。您可以像普通 accounts-password
用户帐户一样对其进行编辑,并像角色一样向其添加任何额外数据。您可以使用 Accounts.onCreateUser
方法添加默认角色,然后像这样调整角色:
Accounts.onCreateUser(function(options, user) {
user.role = "standard"
return user;
});
默认情况下,用户对象仅限于配置文件对象,因此如果您想使用添加到用户对象的新角色数据,您需要执行正常的 publication/subscription它的。或者,如果您不想这样做,您可以将角色添加到配置文件对象中:
Accounts.onCreateUser(function(options, user) {
user.profile.role = "standard"
return user;
});
然后确保不允许客户端调用使用 allow/deny 规则对其进行编辑。我猜你不希望人们想要改变他们的角色!