我在线上学习了有关如何为我的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
谢谢!
答案 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 },
});
}