1 Antwort
- Neueste
- Die meisten Stimmen
- Die meisten Kommentare
0
This is how I solved it. amplify override API to create an overrides.ts file and add the following.
// Create a lambda authorizer
resources.restApi.addPropertyOverride("Body.securityDefinitions", {
Custom: {
type: "apiKey",
name: "Authorization",
in: "header",
"x-amazon-apigateway-authtype": "custom",
"x-amazon-apigateway-authorizer": {
type: "request",
authorizerUri: {
"Fn::Sub":
"arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${AuthorizerFunctionName}/invocations",
},
authorizerResultTtlInSeconds: 300,
identitySource: "method.request.header.Authorization",
},
},
});
// For every path in your REST API, add the authorizer for all methods
for (const path in resources.restApi.body.paths) {
resources.restApi.addPropertyOverride(
`Body.paths.${path}.x-amazon-apigateway-any-method.parameters`,
[
...resources.restApi.body.paths[path]["x-amazon-apigateway-any-method"]
.parameters,
{
name: "Authorization",
in: "header",
required: false,
type: "string",
},
]
);
// Use your new Cognito User Pool authorizer for security
resources.restApi.addPropertyOverride(
`Body.paths.${path}.x-amazon-apigateway-any-method.security`,
[ { Custom: [], }, ]
);
}
beantwortet vor einem Jahr
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren