1

は私が私のAWS CognitoプールID使用してクラス "CreateIdentityPool" 設定にnodeJSスクリプト作成:aws cliまたはnodeJSからコグニートプールIDを作成するときにエラーが発生しました。何が問題なのですか?

var cognitoidentity = new AWS.CognitoIdentity(); 
var params = { 
    "IdentityPoolName": "samplePool", 
    "AllowUnauthenticatedIdentities": true, 
    "CognitoIdentityProviders": [ 
     { 
     "ClientId": "xxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e.apps.googleusercontent.com", /* google client ID */ 
     "ProviderName": "accounts.google.com" 
     } 
    ], 
    "DeveloperProviderName": "mypool" 
}; 
cognitoidentity.createIdentityPool(params, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
}); 

をしかし、それは次のエラーを得た:

{[にValidationException:1つの検証エラーが検出されました: 「cognitoIdentityProviders.1.member.clientId」での値 「xxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e.apps.googleusercontent.com」 は 制約を満たすために失敗しました。メンバーは、正規表現パターンを満たしている必要があります。 [\ W _] +]メッセージ: '1つの検証エラー検出:\値 ':メンバーxxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e.apps.googleusercontent.com \」 \で 'cognitoIdentityProviders.1.member.clientId \' 制約を満たすことができませんでしたコード: 'ValidationException'、時刻:Tue Jan 31 2017 21:11:48 GMT + 1100(AEDT)、requestId: 'ad2b3366-e79d-11e6-b2e7の正規表現パターンを満たす必要があります。 -578f32ddcea5' からstatusCode:400、
再試行可能な値:false、はretryDelay:45.71310137398541}

第二の方法は、私がCognせずに最初のアイデンティティ・プールIDを作成してみましたitoIdentityProvidersを実行し、クラス "UpdateIdentityPool"を使用して更新を実行し、CognitoIdentityProvidersを追加します(認証プロバイダのロックを解除します)。しかし、それは上記の同じ問題でした。呼び出した際にエラーが発生し

(にValidationException):

第三の方法は、私がからAWSは、CLI、まだは同じ問題を持って--cognitoアイデンティティ・プロバイダargumen とアイデンティティ・プールIDを作成してみました UpdateIdentityPool動作:1検証エラー検出:メンバーが正規表現パターンを満たさなければならない: 時の値 'のxxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e' 'はcognitoIdentityProviders.1.member.clientId' 制約を満たすことができなかった[\ W _] +

第4に、aws cliから--cognito-identity-providersなしでIDプールIDを作成し、aws cli(add --cognito-identity-providers)から更新しようとしました。それはまだ同じ問題だった。

この問題は非常に不満で、nodeJSから設定する必要があります。だから、AWS Consoleから認証プロバイダのロックを解除するよう提案しないでください。この問題は非常に参考になっていません。あなたが解決された参照に私をリンクすることができれば本当に感謝します。あなたはCognitoIdentityProvidersを使用している

答えて

1

ありがとうございましたが、それはAWS Cognitoユーザープールにあります。動作させるには SupportedLoginProvidersを設定する必要があります。このように:

var params = { 
    "IdentityPoolName": "samplePool", 
    "AllowUnauthenticatedIdentities": true, 
    "SupportedLoginProviders": { 
     "accounts.google.com": "xxxxxxxxxxx-qea4ebra0gipd0krefi37v8f48svrp8e.apps.googleusercontent.com", 
    } 
}; 
+0

うわー、私はこの解決策を疑うことはありません。私はエイリアス名のように思う前に値オブジェクトを次のように埋めました: SupportedLoginProviders:{ "accounts.google。comが」: 『 は} それは あなたは私がTwitterのプロバイダーのために再度のparamを立ち往生している –

+0

をdoorstuckありがとう機能するようになりました』 Googleのそれは、SupportedLoginProvidersは1つのキーだけの文字列としてオブジェクトを受け入れるConsumerKey&ConsumerSecret入力しばらく2のparamsを必要とします。一つの値列: keyname1 =値1、keyname2 =値2、...、など {provider1:accessid1、provider2:accessid2、...、など} 2を有するさえずりプロバイダとaccessid値を埋める方法 keys ConsumerKey&ConsumerSecret? –

+0

@MahdiRidhoは、キーと秘密の間にコンマを入れようとします:キーと秘密。プロバイダ 'api.twitter.com'を使います。 – doorstuck

関連する問題