我可以在 AWS Cognito 中手动设置客户端 ID 吗?

Posted

技术标签:

【中文标题】我可以在 AWS Cognito 中手动设置客户端 ID 吗?【英文标题】:Can I set client id manually in AWS Cognito? 【发布时间】:2020-01-18 14:41:31 【问题描述】:

我们正在为一个已经在使用的系统对 Cognito 进行一些更新。如果可能的话,我想保持当前的客户端 ID 和密钥相同,这样我们就不必去更新所有的设备客户端。

有没有办法在 AWS Cognito 中手动设置客户端 ID 和密钥?我找不到支持这一点的文档。

【问题讨论】:

客户端 ID 是什么意思?您指的是应用客户端 ID,还是任何具有用户特定设备记住 Amazon Cognito 中的设置? 【参考方案1】:

很遗憾,Cognito 无法让我们设置自己的应用客户端 ID 或机密。它们都是自动生成的。

如果您经常遇到需要重新创建应用程序客户端的情况,我建议您创建一个端点来检索您的应用程序的应用程序客户端信息给定您可以设置的应用程序客户端名称创建应用客户端

您可以通过组合 Cognito API 来实现这一点。

    使用 DescribeUserPoolDomain 获取给定 Cognito 域的 UserPoolId。 使用ListUserPoolClients获取给定UserPoolId的所有应用客户端。这将为您提供对(ClientName、ClientId)的列表。他是您将能够获得与您最初设置的ClientName对应的ClientId。 使用 DescribeUserPoolClient 获取给定 ClientId 和 UserPoolId 的 App Client Secret。

【讨论】:

以上是关于我可以在 AWS Cognito 中手动设置客户端 ID 吗?的主要内容,如果未能解决你的问题,请参考以下文章

从我自己的后端更改 AWS Cognito 用户池令牌到期

AWS Cognito 用户池应用程序客户端中的设置意味着啥

AWS-amplify 在请求中包含 cognito Authorization 标头

如何使用 AWS Cognito AmplifyAuthenticator 设置可选 MFA?

Cognito 用户池作为具有客户端凭据的身份提供者仅在保存到 aws 控制台后才有效

aws cognito 用户池域 - Invalid_Request