在确认后 lambda 函数中访问 Cognito 自定义属性

KSa*_*mra 2 amazon-cognito aws-lambda

我有一个确认后 lambda 函数,它将用户属性信息写入 dynamoDB 表。我已经设法通过执行以下操作来访问“事件”参数中的标准用户属性字段

event.request.userAttributes.sub
Run Code Online (Sandbox Code Playgroud)

但试图跑

event.request.userAttributes.role //where role is the name of my custom attribute
Run Code Online (Sandbox Code Playgroud)

似乎不起作用。有人知道正确的语法是什么吗?我是否需要为自定义属性设置任何特殊的读取权限?我在最初创建这个用户池很长时间后创建了这个自定义属性,如果这改变了事情的话。

tho*_*ace 6

所有自定义属性都带有前缀custom:文档 - 自定义属性)。

因此(我假设您在这里使用 JavaScript - 如果不随意指定,我可以更改此示例),您需要使用:

event.request.userAttributes['custom:role']

您不需要设置任何特殊的读取权限 - 所有用户属性都在 lambda 中返回PostConfirmation