我已阅读了可用的AWS Cognito文档,但我不确定我是否理解如何最好地实现"用户搜索"功能:我希望用户能够互相搜索并查看彼此的用户个人资料。
两个具体要求:
如何最好地接近这个?我想我需要代理API服务,例如AWS Cognito不支持按自定义属性进行搜索。但是有很多问题:
答案 0 :(得分:2)
Cognito没有公开每个用户公开的属性,因此我不确定该方法是否会直接起作用。为了实现Cognito支持的目的,您必须通过在客户端或Lambda中构建自己的挂钩来更新调用,从而镜像在其他地方针对用户存储的属性。可能更清洁的是,只存储您需要在其他地方搜索的自定义属性,并尽可能利用Cognito支持的内容。
根据请求更新更具体的细节:
想到一个粗略的轮廓:
1)客户端,一旦调用更新属性,您将构建一个新钩子,它将更新一些远程数据存储(Elastisearch,Dynamo ......等)。
2)此数据存储应该由API网关支持,使用Cognito访问令牌作为其周围的身份验证机制。
3)查询此数据存储的另一个API也可以使用相同的身份验证机制内置到API网关中。
4)然后查询将转到此API,并且可以包含在存储所具有的任何语言或功能中。
有了这个,它还允许您为谁有权访问什么构建自定义逻辑。
答案 1 :(得分:0)
我使用了一个名为listUsersLambda的lambda函数和CognitoCredentialServiceProvider.listUsers函数。令我惊讶的是它列出了用户,但没有帮助某人确定他们是谁的属性 - 比如识别emailId选择suer发送通知,但至少我们可以通过用户名等选择一个congnito用户。