如何在meteor中的服务器启动时强制执行用户验证?

时间:2015-08-22 07:32:34

标签: authentication meteor

我希望没有用户能够创建具有超级管理员角色的用户,我希望在启动时由服务器创建唯一的超级管理员。如何创建一个强制执行此功能的Accounts.validateNewUser()函数?

更一般地说,我希望所有新用户都以某种方式验证,除了在服务器启动期间创建的用户。我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

当服务器启动时,创建新的超级管理员用户并确保该用户在其文档中具有唯一键。例如:isSuperAdmin: true。在您的Accounts.validateNewUser()代码中(在服务器上运行):

if ( Meteor.user().isSuperAdmin || Meteor.users.find().count() <= 1 ) return true; // only allow super admin to create users with exception for very first user
else throw new Meteor.error(403,'Forbidden');

对于在用户上设置 isSuperAdmin 键的任何尝试,您还需要拒绝规则。