Javascript AWS:将用户授权给特定客户端

Javascript AWS:将用户授权给特定客户端,javascript,reactjs,amazon-web-services,vue.js,amazon-cognito,Javascript,Reactjs,Amazon Web Services,Vue.js,Amazon Cognito,因此,我在AWS Cognito上有以下设置: AWS Cognito用户池:UserPool_1 在此用户池下,我定义了3个用户:迈克、莎拉、约翰 我在该用户池下有3个应用程序客户端: 网络客户端1 网络客户端2 WebClient_3 我希望Mike能够访问:网络客户端1、网络客户端2和网络客户端3 我想让Sarah只能访问:WebClient_3 和John只能访问网络客户端2 目前所有用户都可以访问此用户池下定义的所有3个web应用,这不是我想要的 如何限制用户池中的用户访问特定的应用程

因此,我在AWS Cognito上有以下设置:

AWS Cognito用户池:UserPool_1

在此用户池下,我定义了3个用户:迈克、莎拉、约翰

我在该用户池下有3个应用程序客户端:

网络客户端1

网络客户端2

WebClient_3

我希望Mike能够访问:网络客户端1网络客户端2网络客户端3

我想让Sarah只能访问:WebClient_3

John只能访问网络客户端2

目前所有用户都可以访问此用户池下定义的所有3个web应用,这不是我想要的

如何限制用户池中的用户访问特定的应用程序客户端

假设Sarah试图访问网络客户端1,我希望她收到一条消息:“用户未授权”


如何实现这一点?

解决这一问题的方法是使用。当用户请求身份验证时,Cognito触发器运行一个自定义Lambda脚本。在Lambda脚本中,您将收到一个包含一些内容的事件。您可以获取参数
callerContext.clientId
userName
并进行一些处理。对于一些用户,您可以只在脚本中保留用户-客户机映射,但更可能的是,您希望在DynamoDB之类的数据库中查找映射


编辑:接受您执行的身份验证
回调(null,事件)回调(“您不进来”,null)

谢谢你的建议,我希望亚马逊能为我们提供一种方式,让我们设置哪些用户或组可以访问哪个客户端,而不是让我们维护一个单独的dynamo db,然后在用户每次尝试Singin时调用它。你可以为客户端创建Cognito组,并将用户添加到这些组中。您仍然需要在lambda脚本中做一些工作来查找用户并检查他们所在的组。