【发布时间】:2019-06-29 01:22:45
【问题描述】:
用户登录成功后,我无法从 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/
请帮我弄清楚我是否遗漏了什么..
【问题讨论】:
-
自定义属性只有在被赋值后才会出现。您是否在您创建的自定义属性中添加了价值?
-
@AtharKhan 是的,这些值是在创建用户时提供的,我更新了问题描述以添加显示用户属性值的图像。
-
您确定用于生成令牌的应用客户端 ID 是您分配了可读/可写权限的那个?
-
@AtharKhan 是的,只有一个应用程序客户端,我已经标记了属性并粘贴了相同的屏幕打印。
标签: amazon-web-services aws-sdk amazon-cognito openid-connect aws-userpools