我需要使用aws cognito userpool授权我的API端点.我可以手动完成,但我需要使用无服务器框架自动化授权部分.
无服务器框架是否支持aws cognito?
如果是这样,我们如何设置无服务器的aws-userpool?
是的 无服务器(v1.5)支持Cognito用户池授权程序.
如果您使用以前版本的无服务器,则必须更新v1.5或更高版本.
对于api端点的用户池授权,您必须指定pool arn.
functions: hello: handler: handler.hello events: - http: path: hello method: get integration: lambda authorizer: name: authorizer arn: arn:aws:cognito-idp:us-east-1:123456789:userpool/us-east-1_XXXXXX
更多详细信息阅读该文章.
如果要将授权程序设置为您在资源中声明的Cognito用户池,则必须使用CloudFormation来创建授权程序.
functions: functionName: # ... events: - http: # ... authorizer: type: COGNITO_USER_POOLS authorizerId: Ref: ApiGatewayAuthorizer resources: Resources: ApiGatewayAuthorizer: Type: AWS::ApiGateway::Authorizer Properties: Name: CognitoUserPool Type: COGNITO_USER_POOLS IdentitySource: method.request.header.Authorization RestApiId: Ref: ApiGatewayRestApi ProviderARNs: - Fn::GetAtt: - UserPool - Arn UserPool: Type: AWS::Cognito::UserPool