要在AWS API网关中使用Lambda授权者,您可以按照以下步骤进行操作:
import json
def lambda_handler(event, context):
token = event['authorizationToken']
# 在这里验证并验证令牌
if valid_token:
return generate_policy('user', 'Allow', event['methodArn'])
else:
return generate_policy('user', 'Deny', event['methodArn'])
def generate_policy(principal_id, effect, resource):
auth_response = {
'principalId': principal_id,
'policyDocument': {
'Version': '2012-10-17',
'Statement': [
{
'Action': 'execute-api:Invoke',
'Effect': effect,
'Resource': resource
}
]
}
}
return auth_response
将Lambda函数部署到AWS Lambda,并记录其ARN。
打开AWS API网关控制台,创建一个新的API。
在API网关中,创建一个新的授权者,并选择“Lambda授权者”。
在“授权函数ARN”字段中,输入先前记录的Lambda函数ARN。
配置API网关的资源和方法,并为每个方法选择“授权”为先前创建的授权者。
部署API。
使用API网关的URL进行测试,它应该返回Lambda函数生成的策略文档。
这样,您就可以使用AWS API网关和Lambda授权者来对访问API进行授权。