以下是一个使用AWS Cognito用户池的代码示例:
import boto3
client = boto3.client('cognito-idp')
response = client.create_user_pool(
PoolName='my-user-pool',
Policies={
'PasswordPolicy': {
'MinimumLength': 8,
'RequireUppercase': True,
'RequireLowercase': True,
'RequireNumbers': True,
'RequireSymbols': True,
'TemporaryPasswordValidityDays': 7
}
},
Schema=[
{
'Name': 'email',
'AttributeDataType': 'String',
'Required': True
},
{
'Name': 'phone_number',
'AttributeDataType': 'String',
'Required': True
}
],
AutoVerifiedAttributes=[
'email'
]
)
user_pool_id = response['UserPool']['Id']
response = client.create_user_pool_client(
UserPoolId=user_pool_id,
ClientName='my-user-pool-client',
GenerateSecret=False,
RefreshTokenValidity=30,
ReadAttributes=[
'email',
'phone_number'
],
WriteAttributes=[
'email',
'phone_number'
]
)
user_pool_client_id = response['UserPoolClient']['ClientId']
response = client.sign_up(
ClientId=user_pool_client_id,
Username='user@example.com',
Password='password123',
UserAttributes=[
{
'Name': 'email',
'Value': 'user@example.com'
},
{
'Name': 'phone_number',
'Value': '+1234567890'
}
]
)
user_sub = response['UserSub']
response = client.admin_confirm_sign_up(
UserPoolId=user_pool_id,
Username='user@example.com'
)
response = client.initiate_auth(
ClientId=user_pool_client_id,
AuthFlow='USER_PASSWORD_AUTH',
AuthParameters={
'USERNAME': 'user@example.com',
'PASSWORD': 'password123'
}
)
access_token = response['AuthenticationResult']['AccessToken']
id_token = response['AuthenticationResult']['IdToken']
refresh_token = response['AuthenticationResult']['RefreshToken']
以上示例代码演示了如何使用AWS Cognito用户池进行用户注册、确认、登录等操作。请注意,这只是一个简单的示例,实际使用中需要根据具体需求进行适当的修改和扩展。