Serverless framework 授权人arn提供的无服务器功能返回401
我使用的是无服务器 当我在客户机上设置以下一个函数(包括authorizer)时,我收到401 但是,当我删除它时,没有问题Serverless framework 授权人arn提供的无服务器功能返回401,serverless-framework,serverless,aws-serverless,Serverless Framework,Serverless,Aws Serverless,我使用的是无服务器 当我在客户机上设置以下一个函数(包括authorizer)时,我收到401 但是,当我删除它时,没有问题 provider: name: aws runtime: nodejs8.10 region: eu-west-1 environment: USER_POOL_ARN: "arn:aws:cognito-idp:eu-west-1:974280.....:userpool/eu-west-1........" functions: crea
provider:
name: aws
runtime: nodejs8.10
region: eu-west-1
environment:
USER_POOL_ARN: "arn:aws:cognito-idp:eu-west-1:974280.....:userpool/eu-west-1........"
functions:
create:
handler: handlers/create.main
events:
- http:
path: create
method: post
cors: true
authorizer:
type: COGNITO_USER_POOLS
name: serviceBAuthFunc
arn: ${self:provider.environment.USER_POOL_ARN}
在客户端上,我希望同一用户池的登录用户可以得到预期的响应。然而,它返回401
感谢您的帮助。谢谢。在度过了绝望的几个小时后,我想出了解决办法 对于任何遇到相同问题的人,这里有一个对我有效的解决方案
cors:true
之后添加集成:lambda
(尽管顺序无关紧要)functions:
create:
handler: handlers/create.main
events:
- http:
path: create
method: post
cors: true
integration: lambda // this solves the problem
authorizer:
type: COGNITO_USER_POOLS
name: serviceBAuthFunc
arn: ${self:provider.environment.USER_POOL_ARN}
授权
头。@aws-amplify/API
的API
和@aws-amplify/Auth
的Auth
发送头的示例
const currentSession = await Auth.currentSession()
await API.post(
'your-endpoint-name',
"/your-endpoint-path/..",
{
headers: {
'Authorization': currentSession.idToken.jwtToken
}
}
)