背景
在我的前端网站中,我正在使用扩容框架(Javascript)进行注册/登录。
寄存器
Auth.signUp({
username,
password,
attributes: {
email: email
}
})登录
Auth.signIn(payload.username,payload.password)每次用户登录时,认知id令牌将存储在localStorage中,以便访问API中的API。
这是我的API网关api设置。


每个成功登录的用户都可以调用当前设计的所有api。
问题
现在,我想在调用api时进行基于角色的权限控制,例如,角色banner_admin只能调用/banner api,而角色equipment_admin只能调用/equipment api。
经过一些研究,身份池似乎能够做到这一点。但我不想改变我的登录流程。
有人能提供最快和方便的方式来实现我的应用程序中基于角色的权限控制吗?可以不使用身份池吗?
发布于 2020-12-28 13:52:32
是的,不需要使用标识池服务就可以做到这一点。实际上,身份池不是用于此目的的。它只是将临时凭据交换给经过身份验证或未经身份验证的用户,以访问AWS资源。
为此,您应该使用认知用户池服务所支持的组。一旦用户通过科尼托认证,他得到的声明将包括他所属的组信息(如果你将用户添加到用户池中的特定组中)。您可以基于此组处理权限。
在post确认认知事件时,您可以触发lambda函数,然后可以在后台将用户添加到相应的用户组中。
https://stackoverflow.com/questions/65466200
复制相似问题