无服务器自定义授权者结果未定义

时间:2020-02-13 03:41:33

标签: javascript aws-lambda serverless-framework aws-serverless

我在线上学习了有关如何为我的lambda函数实现自定义授权者的教程和示例。不幸的是,我在访问函数内部的授权者上下文时遇到麻烦。进行dummy仅导致a ~ b。我想念什么吗?这是一些片段。

console.log(event.requestContext.authorizer);
undefined
# serverless.yml

...
myAuthorizer:
  handler: src/functions/myAuthorizer/index.handler

someFunction:
  handler: src/functions/someFunction/index.handler
  events:
    - http:
        method: GET
        path: /hello-world
        authorizer:
          name: myAuthorizer
          identitySource: method.request.header.Authorization

谢谢!

1 个答案:

答案 0 :(得分:1)

myAuthorizer处理函数中,使用callback样式而不是async/await样式。

export async function handler(
  event: AWSLambda.CustomAuthorizerEvent,
  context: AWSLambda.Context
): Promise<void> { // change to void

  const user = { id: 1, email: 'user@test.com' };

  // some logic...

  context.succeed({ // instead of return policy object
    principalId: user.id,
    policyDocument: {
      Version: '2012-10-17',
      Statement: [
        {
          Action: '*',
          Effect: 'Allow',
          Resource: '*',
        },
      ],
    },
    context: { user },
  });
}