要实现AWS API Gateway仅供经过身份验证和游客用户使用的API可用,可以使用AWS Lambda函数来验证用户身份,并在需要时授权访问。
以下是一个可能的解决方案,包含了使用AWS Lambda函数和AWS API Gateway的代码示例:
import json
def lambda_handler(event, context):
# 获取Authorization header中的token
token = event['headers']['Authorization']
# 进行用户身份验证的逻辑
if token == 'valid_token':
# 如果验证成功,返回200状态码和授权用户的信息
response = {
'statusCode': 200,
'body': json.dumps({'message': 'Authenticated user'})
}
else:
# 如果验证失败,返回401状态码和错误信息
response = {
'statusCode': 401,
'body': json.dumps({'message': 'Invalid token'})
}
return response
在AWS API Gateway中创建一个API,并配置一个资源和方法:
配置API Gateway的授权:
添加游客用户访问路径:
现在,"/my-resource"路径下的API只能由经过身份验证的用户访问,而"/guest-resource"路径下的API可以由任何人访问。
请注意,上述代码示例是使用AWS Lambda和Python编写的,您可以根据自己的需求和编程语言进行修改。