簡體   English   中英

如何從 c# 中的 aws cognito 獲取用戶屬性

[英]how to get the user attribute from aws cognito in c#

我正在使用 AmazonCognitoIdentityProviderClient SDK。 我正在嘗試在 cognito 中為用戶獲取自定義屬性。 從 c# 前端我傳遞用戶名、密碼和 email id。 是否有任何 function 從 cognito 檢索用戶屬性?

在 Cognito 成功驗證池中的用戶后,您將收到多個 JWT - 訪問令牌、ID 令牌和刷新令牌。 這些令牌可以在 SDK ( InitiateAuthResponse ) 返回的身份驗證結果 object 中訪問。

您可以驗證和解碼 ID 令牌以解壓縮有關用戶身份的聲明。 這還將包括您在用戶池中定義的任何自定義屬性。 對於 .NET,您可以使用JwtSecurityTokenHandler來解碼 JWT( Sytem.IdentityModel.Tokens.Jwt命名空間)。 解碼令牌后,訪問Claims屬性以獲取用戶信息。 自定義屬性以custom:為前綴,而 Cognito 屬性(例如用戶名)以cognito:為前綴。

這是關於如何解碼令牌的 AWS 文檔: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html

這是一個關於如何使用JwtSecurityTokenHandler的示例: https://www.jerriepelser.com/blog/manually-validating-rs256-jwt-dotnet/

您還可以使用訪問令牌使用 SDK 直接查找用戶,AWS SDK 的響應將包含用戶屬性。 這是關於那個的文檔: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html

嘗試 Amazon.CognitoIdentityProvider.AmazonCognitoIdentityProviderClient.GetUserAsync(),它將返回所有標准和自定義屬性。 請注意,該方法只會返回設置了值的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM