2016-05-16 17 views
6

thisチュートリアルの助けを借りてWeb App認証を作成しようとしています。Amazon Cognito用のユーザープール - CredentialsError:設定に資格情報がありません

var app = {}; 

app.configureCognito = function(){ 
    AWSCognito.config.region = 'us-east-1'; 

    var poolData = { 
     UserPoolId: 'userPoolId', 
     ClientId: 'ClientId' 
    }; 

    var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
    var userData = { 
        UserName:'MyName', 
        Pool: userPool 
    }; 

    var attributeList = []; 

    var dataEmail = { 
      Name: 'email', 
      Value: '[email protected]' 
    }; 

    var dataPhoneNumber = { 
      Name: 'phone_number', 
      Value: '+9112212212212' 
    }; 

    var attributeEmail = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataEmail); 
    var attributePhoneNumber = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserAttribute(dataPhoneNumber); 

    attributeList.push(attributeEmail); 
    attributeList.push(attributePhoneNumber); 

    var cognitoUser; 

    userPool.signUp('userName','password',attributeList,null,function(err,result){ 
      if(err){ 
        console.log(err); 
        alert(err); 
        return; 
      } 
      cognitoUser = result.user; 
      console.log('User Name is: '+cognitoUser); 
    }); 

}; 

私は、私たちはここにAWSCognito.config.credentials割り当てを行っていないが、それは想定されていないことを理解し、「設定に資格を欠けている」というエラーを取得しています - ここで私が書いたコードですuserPoolオブジェクトで提供される情報を使用するには?欠けている部分や何かコードに問題はありますか? UserPoolIdとクライアントIDに関連して、どちらも100%正しいです。どんな助けもありがとう。

AWS.config.region = 'us-east-1'; // Region 
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: '...' 
}); 

AWSCognito.config.region = 'us-east-1'; 
AWSCognito.config.credentials = new AWS.CognitoIdentityCredentials({ 
    IdentityPoolId: '...' 
}); 

そして資格の両方 -

答えて

9

私はそれがすべてで、この例ではIdentityPoolIdを提供する必要はありません、明らかにコードの下に使用することで解決しまった、これらは以下のように残すことができ単なるプレースホルダですAWS.config.credentialsとAWSCognito.config.credentialsを設定する必要があります。上記の手順たらAWSCognito.configは以下のように更新する必要が完成 -

// Need to provide placeholder keys unless unauthorised user access is enabled for user pool 
AWSCognito.config.update({accessKeyId: 'anything', secretAccessKey: 'anything'}) 

var poolData = { 
    UserPoolId : 'user pool id collected from user pool', 
    ClientId : 'application client id of app subscribed to user pool' 
}; 

dataPhoneNumber、およびuserDataはオプションで、dataPhoneNumberは、サインアップのためのケースのSMSの検証に提供されなければならないが必要です。

上記の問題が解決された場合、誰かが見たいと思えば、Identity-Codeは実用的なモデルです。

+0

うわー、ありがとう!私の問題も解決しました。このドキュメントはひどいです。あなたはその情報をどこで見つけましたか? – user2997154

+2

ヒットアンドトライアルの努力は惜しみなくここで参考にしたい場合は完全なコードです - https://github.com/jeetendra-choudhary/Identity-Code.git – Jeet

+0

あなたは私の主人公です –

関連する問題