我正在尝试使用CDK将自定义授权者附加到API。
我正在使用Cognito进行用户管理。
我想使用自定义授权者实现的是
我找不到有关如何将自定义授权者附加到API的任何示例或文档。如何附加自定义授权者,或者CDK不支持自定义授权者,是否可以解决要求?
答案 0 :(得分:1)
以下内容可以帮助您获得想要实现的目标。目前authorizer
上的addMethod
未实现,因此您需要覆盖。
const api = new RestApi(this, 'RestAPI', {
restApiName: 'Rest-Name',
description: 'API for journey services.',
});
const putIntegration = new LambdaIntegration(handler);
const auth = new CfnAuthorizer(this, 'CustomAuthorizer', {
name: 'custom-authorizer',
type: AuthorizationType.CUSTOM,
...
});
const post = api.root.addMethod('PUT', putIntegration, { authorizationType: AuthorizationType.CUSTOM });
const postMethod = post.node.defaultChild as CfnMethod;
postMethod.addOverride('Properties.AuthorizerId', { Ref: auth.logicalId });
这将附加创建的authorizer
答案 1 :(得分:0)
您必须:
最后,发出一个请求,在令牌中添加令牌。 API网关将使用Cognito对其进行验证。如果通过此验证,则将触发您的lambda,并且在事件中您可以找到声明 event.requestContext.authorizer.claims 。有一些方法可以做到,请遵循此link