Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom attribute not passed into ID_TOKEN created by AWS Cognito

I am not able to get custom attribute in ID_TOKEN returned from AWS Cognito after successful user login.

Steps I tried :

1.Created user pool 2.Created app client and checked the custom attribute(customattrib1,customattrib2)

User Pool screen :

enter image description here

Check custom attribute in app client config

enter image description here

3.Created user using admin-create-user api

Below image shows the value for user attributes:

enter image description here

4.Signed in user using aws-cognito-auth.js in client app.The ID token returned do not contain the custom attribute.

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": "[email protected]" } 

I have already checked links below, which had some info regarding this issue, but nothing helped so far.

Adding Cognito custom attributes post pool creation?

Cognito User Pool custom attributes do not show up in the ID token if user pool is configured with a SAML identity provider

Cognito User Pool custom attributes do not show up in the ID token if user pool is configured with a SAML identity provider

https://www.reddit.com/r/aws/comments/a07dwg/cognito_add_custom_attribute_to_jwt_token/

Please help me figure out if I am missing something..

like image 510
Mahesh_Loya Avatar asked Feb 05 '19 09:02

Mahesh_Loya


People also ask

How do I change the attributes of an Amazon Cognito user pool after creation?

Short description. You can't change standard user pool attributes after a user pool is created. Instead, create a new user pool with the attributes that you want to require for user registration. Then, migrate existing users to the new user pool by using an AWS Lambda function as a user migration trigger.

How do I update Cognito attributes?

To update a cognito user's attributes use the admin-update-user-attributes command, specifying the user-pool-id , username and user-attributes parameters.

Does AWS Cognito use JWT?

After a user logs in, an Amazon Cognito user pool returns a JWT. The JWT is a Base64-encoded JSON string that contains information about the user (called claims). Amazon Cognito returns three tokens: the ID token, the access token, and the refresh token.


1 Answers

  • In your Cognito user pool go to General Settings -> App Clients, then for each app client click on Show Details, then Set attribute read and write permissions. Check the checkbox next to your attribute name under Readable Attributes.
  • In your Cognito user pool go to App client settings -> Allowed OAuth Scopes and enable profile scope.
like image 94
joe Avatar answered Sep 19 '22 21:09

joe