用户成功登录后,我无法从AWS Cognito返回ID_TOKEN中的自定义属性。
我尝试过的步骤:
1。创建的用户池 2.创建应用客户端,并检查自定义属性( customattrib1,customattrib2 )
用户池屏幕:
在应用客户端配置中检查自定义属性
3。使用admin-create-user api创建的用户
下图显示了用户属性的值:
4。在客户端应用中使用aws-cognito-auth.js登录的用户。返回的ID令牌不包含自定义属性。
ID_TOKEN
{
"at_hash": "PKfjYDaiEty5mUOyJZlPQA",
"sub": "639d5016-2bd3-4c6f-b82d-21ae38071b09",
"email_verified": true,
"iss": "https://cognito-idp.ap-south-1.amazonaws.com/ap-south-1_XXXXXXX",
"phone_number_verified": true,
"cognito:username": "testuser",
"aud": "XYXYXYXYX",
"token_use": "id",
"auth_time": 1549349674,
"phone_number": "##########",
"exp": 1549353274,
"iat": 1549349674,
"email": "testuser@somedomain.com"
}
我已经检查了下面的链接,其中包含有关此问题的一些信息,但到目前为止没有任何帮助。
Adding Cognito custom attributes post pool creation?
https://www.reddit.com/r/aws/comments/a07dwg/cognito_add_custom_attribute_to_jwt_token/
如果我缺少什么,请帮助我。
答案 0 :(得分:2)
Show Details
和Set attribute read and write permissions
。选中Readable Attributes
下属性名称旁边的复选框。profile
范围。答案 1 :(得分:1)
我遇到了同样的麻烦,当我寻找解决方案时出现了您的问题。
当我在“应用程序客户端设置”中启用 profile 范围时,我的自定义属性开始显示在ID令牌中。 (位于:AWS控制台->'用户池'->单击您的池->'应用程序客户端设置'->'允许的OAuth范围')
(顺便说一句:我被documentation的这句话误导了:“ openid 范围返回ID令牌中所有可由客户端读取的用户属性。” openid 范围还不够。)