要在AWS API网关中进行身份验证而不使用Cognito,您可以使用自定义授权函数或使用Lambda自定义授权函数。
以下是使用自定义授权函数的解决方案:
def authorize(event, context):
# 检查请求中的身份验证信息
if event['headers']['Authorization'] != 'my-secret-key':
return {
'statusCode': 401,
'body': 'Unauthorized'
}
# 身份验证通过
return {
'statusCode': 200,
'body': 'Authorized'
}
在AWS管理控制台中创建一个Lambda函数,并将上述代码复制到函数代码编辑器中。
创建一个API网关,将您的Lambda函数配置为自定义授权函数。在API网关中选择“资源”和“方法”,然后转到“方法请求”部分。
在“方法请求”部分,选择“身份验证”下拉菜单,并选择“自定义授权”。
在“自定义授权名称”字段中,输入您的Lambda函数名称。
保存更改,并部署API网关。
现在,您的API网关将使用自定义授权函数来验证每个请求的身份。
以下是使用Lambda自定义授权函数的解决方案:
def authorize(event, context):
# 检查请求中的身份验证信息
if event['headers']['Authorization'] != 'my-secret-key':
return {
'isAuthorized': False
}
# 身份验证通过
return {
'isAuthorized': True
}
在AWS管理控制台中创建一个Lambda函数,并将上述代码复制到函数代码编辑器中。
创建一个API网关,将您的Lambda函数配置为自定义授权函数。在API网关中选择“资源”和“方法”,然后转到“方法请求”部分。
在“方法请求”部分,选择“身份验证”下拉菜单,并选择“AWS Lambda函数”。
在“Lambda函数ARN”字段中,输入您的Lambda函数的ARN。
保存更改,并部署API网关。
现在,您的API网关将使用Lambda自定义授权函数来验证每个请求的身份。