Cognito 投掷用户名应该是电子邮件
Cognito throwing Username should be an email
我正在尝试构建连接到 API 网关 POST 方法的 lambda 函数,该方法将允许用户在给定池中创建和注册认知用户:
def lambda_handler(event, context):
username = json.dumps(event["body"])
try:
response = client.admin_create_user(
UserPoolId=user_pool,
Username=username,
TemporaryPassword="TemporaryPassword1234",
)
return response
except ClientError as e:
return {
"statusCode": 400,
"headers": misc.response_parameters_standard,
"body": e.response["Error"]["Message"],
}
电子邮件格式的用户名在活动正文中给出。
我已通过日志记录语句确认用户名变量已成功提取为格式为“name@email.com”的字符串
我已确认 lambda 函数具有以管理员身份访问 cognito 的适当权限。
在 运行 这个 lambda 上,我遇到了以下 ClientError:
Username should be an email.
我直接从 CLI 发送了相同格式的用户名,用户池接受了相同的用户名,没有错误。
json.dumps
转换对象 -> JSON。
json.loads
转换 JSON -> 对象。
如果 event
是 JSON,您想转换 JSON -> 对象,所以请尝试 username = json.loads(event["body"])
。
如果不是,而您只是将用户名作为字符串传递,请尝试 username = event[“body”]
。
我正在尝试构建连接到 API 网关 POST 方法的 lambda 函数,该方法将允许用户在给定池中创建和注册认知用户:
def lambda_handler(event, context):
username = json.dumps(event["body"])
try:
response = client.admin_create_user(
UserPoolId=user_pool,
Username=username,
TemporaryPassword="TemporaryPassword1234",
)
return response
except ClientError as e:
return {
"statusCode": 400,
"headers": misc.response_parameters_standard,
"body": e.response["Error"]["Message"],
}
电子邮件格式的用户名在活动正文中给出。
我已通过日志记录语句确认用户名变量已成功提取为格式为“name@email.com”的字符串
我已确认 lambda 函数具有以管理员身份访问 cognito 的适当权限。
在 运行 这个 lambda 上,我遇到了以下 ClientError:
Username should be an email.
我直接从 CLI 发送了相同格式的用户名,用户池接受了相同的用户名,没有错误。
json.dumps
转换对象 -> JSON。
json.loads
转换 JSON -> 对象。
如果 event
是 JSON,您想转换 JSON -> 对象,所以请尝试 username = json.loads(event["body"])
。
如果不是,而您只是将用户名作为字符串传递,请尝试 username = event[“body”]
。