2016-06-18 110 views
0

這些是我爲從AWS Cognito獲取訪問令牌所做的調用。我正在實施Developer Authenticated Identities workflow ,我在後臺驗證用戶身份。我的代碼:AWS Cognito:開發者身份驗證身份

cognitoIndentityClient = Aws::CognitoIdentity::Client.new(
     region: 'us-east-1', 
     credentials: permanent_aws_creds, 
    ) 
developerProviderName = '1.Got From Developer Provider Name under Custom in Cognito Console' 
identityPoolId = 'us-east-1:Xxxxx' 

resp = cognitoIndentityClient.get_open_id_token_for_developer_identity(
     identity_pool_id: identityPoolId, 
     logins: { 
      developerProviderName => UniqueIdentityTokenProviderFromMYBackend 
     } 
    ) 

resp2 = cognitoIndentityClient.get_credentials_for_identity(
     { 
      identity_id: resp['identity_id'], 
      logins: { 
       'cognito-identity.amazonaws.com' => resp['token'] 
      } 
     } 
    ) 

我的問題:1。 如何創建在用戶池中的用戶在上述呼叫後(啓用MFA和所有的)?我可以看到身份證是在我的控制檯中創建的,但之後我就失去了。

回答

0

您可以檢查身份驗證提供程序部分的自定義選項卡中的身份池配置中是否設置了開發人員提供程序名稱,並且它與上面代碼中的值匹配?這可能是錯誤的一個可能的原因。

要回答你的其他問題。您無需實施開發人員身份驗證身份即可使用Cognito的「用戶池」功能。這是兩個獨立的功能。 Cognito開發人員身份驗證身份允許您將自己的身份驗證系統與Cognito身份進行聯盟。如果您希望Cognito管理您的用戶併爲您提供基於用戶名和密碼的註冊,登錄和MFA,則「用戶池」功能將是正確的選擇。用戶池管理的用戶也可以聯合Cognito身份。

+0

謝謝,我做到了。我所要做的只是在get_credentials_for_identity()中替換cognito-identity.amazonaws.com用於developerProviderName鍵。我有一個關於用戶的問題,請問你能幫我一下嗎? – premunk

+0

另外,我修改了代碼以反映它。有零紅寶石的例子,所以這可能有助於某人。 – premunk

+1

當然,謝謝。你也可以在問題中保留原始的錯誤信息,以便對遇到同樣問題的人有用。目前沒有用於用戶池的ruby sdk。但它在Android,iOS和JavaScript中可用。 –

相關問題