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

AWS Cognito:如何在用户登录的Access Token中添加自定义用户属性

解决AWS Cognito自定义属性加入Access Token声明的方法

方法一:通过Cognito控制台配置

  • 登录Cognito用户池控制台,进入目标用户池
  • 切换到App integration标签,找到你正在使用的App Client,点击Edit
  • 在Attribute read and write permissions区域,找到你的自定义属性(通常以custom:开头),确保勾选Read权限
  • 下滑到ID token and access token claims区域,找到对应自定义属性,勾选将其包含在Access token中
  • 保存配置后,用户重新登录生成的Access Token就会携带这些自定义属性

方法二:使用Pre Token Generation Lambda触发器

如果控制台配置无法满足动态处理需求,可以用这个方案:

  1. 创建Lambda函数,通过代码将自定义属性注入Access Token,示例Python代码如下:
def lambda_handler(event, context):
    # 获取用户池中存储的自定义属性
    user_attrs = event['request']['userAttributes']
    # 整理需要加入Access Token的属性
    add_claims = {
        'custom:your_attr_1': user_attrs.get('custom:your_attr_1'),
        'custom:your_attr_2': user_attrs.get('custom:your_attr_2')
    }
    # 将属性写入Token声明
    event['response']['claimsOverrideDetails'] = {
        'claimsToAddOrOverride': add_claims
    }
    return event
  1. 回到Cognito用户池的Triggers标签,找到Pre token generation选项,选择刚创建的Lambda函数
  2. 保存配置,用户登录时Lambda会自动把自定义属性加入Access Token的载荷中

注意事项

  • 自定义属性必须以custom:为前缀,这是Cognito的强制规范
  • 修改配置后需要用户重新登录,旧Token不会自动更新属性
  • 确保自定义属性已正确存储在用户池中(控制台能显示说明存储没问题)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:05:04