要将API Gateway配置为使用Cognito授权者的公共路径,你可以按照以下步骤进行操作:
在API Gateway中创建一个新的REST API。
在API的资源树中,创建一个新的资源,作为你想要设置为公共路径的路径。
在该资源上创建一个GET方法,并将其配置为使用Lambda集成。
在集成请求中,选择Lambda函数来处理请求。
在Lambda函数中,编写代码来验证Cognito授权者的访问令牌。
以下是一个基本的Lambda函数示例,用于验证Cognito授权者的访问令牌:
import json
import boto3
def lambda_handler(event, context):
# 获取Cognito授权者的访问令牌
token = event['headers']['Authorization']
# 验证访问令牌
client = boto3.client('cognito-idp')
try:
response = client.get_user(AccessToken=token)
# 认证成功
return {
'statusCode': 200,
'body': json.dumps({'message': 'Authentication successful'})
}
except:
# 认证失败
return {
'statusCode': 401,
'body': json.dumps({'message': 'Authentication failed'})
}
在API Gateway的方法请求设置中,添加一个授权者,选择Cognito用户池,并输入你的用户池ID。
在API Gateway的部署设置中,创建一个新的部署阶段,并选择你的资源。
在部署阶段的阶段变量设置中,添加一个名为Authorization
的变量,并将其设置为Allow
,以允许未经身份验证的请求通过。
部署API Gateway,并在部署的URL上测试你的公共路径。
现在,你已经成功地将API Gateway配置为使用Cognito授权者的公共路径。需要注意的是,这只是一个基本示例,你可以根据你的需求进行调整和扩展。