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

AWS Cognito注册时写入必填属性提示未授权如何解决?

解决AWS Cognito注册时的"NotAuthorizedException"错误

问题根源

你遇到的错误来自两个关键问题:

  • 属性名称不匹配:用户池要求的必填属性是given_name和family_name,但代码里传入的是first_name和last_name——这是Cognito中完全不同的属性字段(前者是标准OIDC规范属性,后者属于自定义/旧版命名)。
  • 客户端写入权限未开放:即便属性名称正确,若应用客户端未被授权写入given_name和family_name,也会触发未授权错误。

修复步骤

1. 修正代码中的属性名称

将代码里的属性名替换为用户池要求的given_name和family_name,同时注意signUp方法的参数格式(属性需放在同一个数组中):

const firstNameAttribute = new CognitoUserAttribute({ Name: 'given_name', Value: firstName });
const lastNameAttribute = new CognitoUserAttribute({ Name: 'family_name', Value: lastName });
cognitoUserPool.signUp(username, password, [firstNameAttribute, lastNameAttribute], null, callback);

2. 配置应用客户端的属性写入权限

登录AWS控制台,进入目标Cognito用户池:

  • 切换到应用客户端页面,选择你正在使用的客户端
  • 找到允许的属性区域,勾选given_name和family_name的**可写入(Writable)**权限
  • 保存配置后重新测试注册流程

验证

完成上述修改后重新调用注册接口:

  • 若配置正确,用户将能正常完成注册,且given_name和family_name会被正确写入用户属性
  • 若仍报错,需再次确认用户池的必填属性规则,以及应用客户端的权限配置是否生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:01:55