能否在AWS Cognito预注册Lambda触发器中修改用户属性?
能否通过Lambda触发器修改AWS Cognito用户属性?
没问题!在预注册(Pre Sign-up)Lambda触发器中,你完全有权修改event.request.userAttributes里的现有属性,或者添加新的自定义用户属性——这些修改会被Cognito的后续流程采纳,最终应用到新创建的用户账号上。
根据AWS官方文档的定义,预注册Lambda函数的请求参数结构包含:
"request": { "userAttributes": { "string": "string", .... }, "validationData": {<validation data as key-value (String, String) pairs, from the client>}
你可以直接操作event.request.userAttributes对象来实现需求,示例代码如下:
// 修改现有用户名,将首字母转为大写 event.request.userAttributes.name = event.request.userAttributes.name.charAt(0).toUpperCase() + event.request.userAttributes.name.slice(1); // 给用户添加额外的自定义属性 event.request.userAttributes.nickname = "ANY_NAME"; // 必须返回修改后的event对象,确保Cognito能接收到变更 callback(null, event);
这里有个小细节需要注意:如果要添加自定义属性(比如示例里的nickname),你需要先在Cognito用户池的属性设置中提前创建好这个自定义属性,否则Cognito会忽略你新增的属性。另外,修改后的属性要符合Cognito的属性规则(比如长度、格式限制),避免触发流程错误。
内容的提问来源于stack exchange,提问作者Altus
相关产品推荐
相关产品推荐

