[英]Custom attribute not passed into ID_TOKEN created by AWS Cognito
用戶成功登錄后,我無法獲取從 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"
}
我已經檢查了下面的鏈接,其中有一些關於這個問題的信息,但到目前為止沒有任何幫助。
如果用戶池配置了 SAML 身份提供商,Cognito 用戶池自定義屬性不會顯示在 ID 令牌中
如果用戶池配置了 SAML 身份提供商,Cognito 用戶池自定義屬性不會顯示在 ID 令牌中
https://www.reddit.com/r/aws/comments/a07dwg/cognito_add_custom_attribute_to_jwt_token/
請幫我弄清楚我是否遺漏了什么..
Show Details
,然后Set attribute read and write permissions
。 選中Readable Attributes
下屬性名稱旁邊的復選框。profile
范圍。我遇到了同樣的問題,在我尋找解決方案時出現了您的問題。
當我在“應用程序客戶端設置”中啟用配置文件范圍時,我的自定義屬性開始出現在 ID 令牌中。 (可在:AWS 控制台->“用戶池”-> 單擊您的池->“應用程序客戶端設置”->“允許的 OAuth 范圍”)
(順便說一句:我被文檔中的這句話誤導了:“ openid范圍返回客戶端可讀的 ID 令牌中的所有用戶屬性”。在我的情況下, openid范圍是不夠的。)
對我來說,問題是我正在從以下位置獲取令牌(在使用 Amplify js 庫進行身份驗證后):
Auth.currentSession().then(u => u.getAccessToken().getJwtToken())
代替:
Auth.currentSession().then(u => u.getIdToken().getJwtToken());
改完后效果不錯! 希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.