我在Cognito
.
我想做的是当一个新用户尝试使用 UI 注册时,他会得到一个验证码。用户输入代码后,Post confirmation
必须触发 lambda,并且必须将此新创建的用户直接添加到名为users
.
我找到了 admin_add_user_to_group客户端并编写了以下代码并将其部署为 lambda:
import boto3
import hmac
import hashlib
import base64
USER_POOL_ID = ''
CLIENT_ID = ''
CLIENT_SECRET = ''
def lambda_handler(event, context):
client = boto3.client('cognito-idp')
try:
username = event['username']
response = client.admin_add_user_to_group(
UserPoolId=USER_POOL_ID,
Username=username,
GroupName='users'
)
except client.exceptions.InvalidParameterException:
return {"error": True, "success": False, "message": "Username doesnt exists"}
except client.exceptions.ResourceNotFoundException:
return {"error": True, "success": False, "message": "Invalid Verification code"}
except client.exceptions.NotAuthorizedException:
return {"error": True, "success": False, "message": "User is already confirmed"}
except Exception as e:
return {"error": True, "success": False, "message": f"Unknown error {e.__str__()} "}
return event
部署代码后,我将其连接到Post confirmation
触发器。现在,当用户尝试注册时,会发送一个代码。但是,当我粘贴代码以确认用户时,会发生两件事:
- 用户得到确认,但是,
- 用户未添加到
users
组中。
它显示以下错误:
我犯了什么错误?