You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS Cognito AdminCreateUser创建含自定义属性用户报错求助

AWS Cognito AdminCreateUser 抛出InvalidParameterException:自定义属性不存在的问题解决

问题描述

我尝试使用AWS Cognito的AdminCreateUser API创建用户时,始终抛出InvalidParameterException异常,错误信息为:

Attributes did not conform to the schema: custom:dob: Attribute does not exist in the schema

我的代码如下:

var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); 
var params = { 
  UserPoolId: "us-east-1_302HlhnaC", /* required */ 
  Username : "test@yopmail.com", 
  ForceAliasCreation: true, 
  TemporaryPassword: 'test@yopmail.com', 
  UserAttributes: [ 
    { Name: 'given_name', /* required */ Value: 'test' }, 
    { Name: 'family_name', /* required */ Value: 'kumar' }, 
    { Name: 'name', /* required */ Value: 'test' }, 
    { Name: 'custom:dob', /* required */ Value: '1990-07-25' }, 
    { Name: 'email', /* required */ Value: 'test@yopmail.com', }, 
    { Name: 'email_verified', /* required */ Value: 'true', } 
  ], 
}; 
cognitoidentityserviceprovider.adminCreateUser(params, function(error, data) { 
  console.log(error,data); 
  res.send("test"); 
});

解决方案

这个问题本质是你在代码里使用的custom:dob自定义属性,并没有在对应的Cognito用户池中配置,按以下步骤排查修复:

  • 检查并添加自定义属性
    登录AWS控制台,找到你代码中指定的us-east-1_302HlhnaC用户池,进入属性标签页,在「自定义属性」区域查看是否有dob属性(注意Cognito会自动给自定义属性加上custom:前缀,所以创建时只需要填dob)。如果没有,点击「添加自定义属性」,设置属性名称为dob,类型选择「字符串」(因为你的值是日期格式的字符串),然后保存配置。

  • 确认属性的可写权限
    创建或修改自定义属性时,一定要勾选「可写」选项——如果这个属性设置为只读,那么通过AdminCreateUser API写入值时会直接报错,确保这个权限是开启的。

  • 验证代码中的属性名称格式
    你代码里用的custom:dob格式是正确的,Cognito自定义属性的命名规则就是custom:属性名,这部分不需要修改。

如果做完以上操作还是报错,建议再核对下代码里的UserPoolId是否和控制台里的完全一致,避免拼写错误导致找不到对应的用户池配置。

内容的提问来源于stack exchange,提问作者Manoj Thakur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:45:37