Amazon Cognito:用户搜索作为应用程序中的功能

Amazon Cognito: user search as functionality in an App

我已通读可用的 AWS Cognito 文档,但我不确定我是否了解如何最好地实施 "user search" 功能:我希望用户能够相互搜索并查看每个其他人的用户资料。

两个具体要求:

如何最好地解决这个问题?我想我需要一个代理 API 服务,例如AWS Cognito 不支持按自定义属性搜索。但是有很多问题:

Cognito 不会公开每个用户的属性,因此我不确定该方法是否会直接起作用。要使用 Cognito 已经支持的功能来实现这一目标,您必须镜像针对其他地方的用户存储的属性,方法是将您自己的挂钩构建到来自客户端的更新调用中,或者通过 Lambda。可能更简洁的方法是仅存储您需要在其他地方搜索的自定义属性,并尽可能利用 Cognito 支持的内容。

根据请求更新更具体的细节:

脑海中浮现的大致轮廓:

1) 客户端,调用更新属性后,您将构建一个新挂钩,该挂钩将更新一些远程数据存储(Elastisearch、Dynamo 等)。

2) 此数据存储应该由 API 网关支持,使用 Cognito 访问令牌作为其周围的身份验证机制。

3) 查询此数据存储的另一个 API 也可以内置到 API 网关中,使用相同的身份验证机制。

4) 然后查询将转到此 API 并且可以包装到存储具有的任何语言或功能中。

有了这个,它还允许您根据谁有权访问什么来构建自定义逻辑。

我使用了我创建的名为 listUsersLambda 的 lambda 函数和 CognitoCredentialServiceProvider.listUsers 函数。令我惊讶的是,它列出了用户,但没有列出可以帮助某人确定他们是谁的属性——比如识别 emailId 以选择向其发送通知,但至少我们可以通过用户名等选择一个 congnito 用户