我有一个关于在我的应用程序后端使用 FeatherJS 设计注册程序的问题。
我面临的问题如下:
我希望用户能够使用他/她的电子邮件和密码注册他的组织/公司。该用户可以被视为组织的管理员。
创建该管理员用户后,我希望该用户能够创建链接到他/她的组织的其他用户。为了确保只有管理员用户可以创建其他用户,我设置了羽毛权限以检查“用户”服务的“之前”挂钩中的“管理员”权限
module.exports = {
before: {
all: [ ],
find: [ authenticate('jwt') ],
get: [ authenticate('jwt') ],
create: [ authenticate('jwt'), checkPermissions({
roles: [ 'admin' ]
}), hashPassword ],
update: [ authenticate('jwt'), checkPermissions({
roles: [ 'admin' ]
}), hashPassword ],
patch: [ authenticate('jwt'), checkPermissions({
roles: [ 'admin' ]
}), hashPassword ],
remove: [ authenticate('jwt'), checkPermissions({
roles: [ 'admin' ]
}) ]
},
我现在遇到的问题是我无法注册初始用户,因为 before 挂钩正在请求一个经过身份验证的用户,该用户具有我没有的管理员权限,因为该用户尚未创建。
我可以删除身份验证和权限检查,但随后我的用户服务“不受保护”,任何人都可以使用对服务器的正确 POST 调用来创建用户。
我的问题是:我应该如何设置我的服务和/或挂钩,以便我可以在我的应用程序中注册一个新用户,并且只有经过身份验证的管理员用户才能在应用程序中创建新用户?
提前谢谢了!