【发布时间】:2019-11-11 00:43:00
【问题描述】:
我正在我的应用中使用 Cognito 管理会员资格。顺便说一句,cognito 会查找密码,但不提供用户名查找。我不是在找吗?还是它不提供功能?所以我尝试通过将它存储在mysql中来找到我的id。每个人都如何在 Cognito 中找到用户名?
【问题讨论】:
标签: amazon-web-services amazon-cognito
我正在我的应用中使用 Cognito 管理会员资格。顺便说一句,cognito 会查找密码,但不提供用户名查找。我不是在找吗?还是它不提供功能?所以我尝试通过将它存储在mysql中来找到我的id。每个人都如何在 Cognito 中找到用户名?
【问题讨论】:
标签: amazon-web-services amazon-cognito
您可以使用AdminGetUser 从给定池中获取用户。
在python中是这样的:
from boto3 import client
_cognito = client('cognito-idp')
user = _cognito.admin_get_user(
UserPoolId='Your-Pool-Id',
Username='Your-User',
)
正如 @joe 在 cmets 中所建议的,您也可以使用 GetUser,但您需要一个访问令牌。
from boto3 import client
_cognito = client('cognito-idp')
user = _cognito.get_user(
AccessToken='Your-Access-Token',
)
【讨论】:
如果您的用户已通过身份验证并且您有 ID 和访问 JWT 令牌,您可以对它们进行解码,它们包含用户属性,如 sub、email 等,可能会提供您需要的信息。有关于如何解码每个令牌的示例代码here,但基本上它们是在三个句点分隔的部分(如 aaa.bbb.ccc)中进行 base64 编码,因此您只需将字符串拆分为 '.'并对每个部分进行 base64 解码。
【讨论】: