2017-01-03 18 views
4

次のノードアプリケーションでamazon-cognito-identity-jsのv1.10を使用します。ノードjs内のCognitoユーザープールを認証する方法

私は次のように書いています。 この呼び出しは、ユーザー登録が確認され、電子メールが確認された後に行われます。 authenticateUserが呼び出されると

var AWS = require('aws-sdk'); 
var AWSCognito = require('amazon-cognito-identity-js'); 

router.post('/emailsignin', function(req, res, next) { 
var email = req.body.email; 
var pwd = req.body.password; 

AWS.config.region = 'eu-west-1'; 
var poolData = { 
    UserPoolId : AWS_USERPOOLID, 
    ClientId : AWS_APPCLIENTID 
}; 
var userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
var authenticationData = { 
    Username : email, 
    Password : pwd, 
}; 
var authenticationDetails = new AWS.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData); 
var userData = { 
    Username : email, 
    Pool : userPool 
}; 
var cognitoUser = new AWS.CognitoIdentityServiceProvider.CognitoUser(userData); 

cognitoUser.authenticateUser(authenticationDetails, { 
    onSuccess: function (result) { 
    }, 
    onFailure: function(err) { 
} 
}); 

、私は「のReferenceErrorを:ナビゲータが定義されていません」を取得

をブラウザの呼び出しがノードサーバの内部で試みられているように見えます。

私はこの上のgithubの問題を作成したとの勧告が "jsbn" を参照してくださいすることでした: "^ 0.1.0"、 "SJCL": "^ 1.0.3"、 「アマゾン・cognitoアイデンティティ-js ":"^1.10.0 "、 " aws-sdk ":"^2.5.3 "

私はパッケージのバージョンを変更しました。残念ながら、これでもうまくいきませんでした。 電子メールIDとパスワードを使用して認証しようとするサンプルnodejsアプリケーションを作成しました。

NB:Cognitoプールはエイリアスとして電子メールで設定されています。ユーザーは作成され、確認され、電子メールで確認されました。

ソースレポ:「が見つかりませんナビゲーター」を解決する方法についてhttps://github.com/prem911/cognito-nodejs

任意のポインタ?

+0

Cognitoは_servers_、AWSに認証する_users_ためのサービスではありません。このコードはクライアント側で実行する必要があります。 –

+0

その場合、クライアントのjsファイルにawsユーザーのプールIDとawsのアプリケーションのクライアントIDが公開されていないことがあります。私はサーバーからフェデレーションされたIDの認証を行うことができました。これはクライアントからも行われるべきですか? – prem911

+0

あなたは、その情報を公開することが悪いと思う場合、どのようにコグニートが動作するかを確認する必要があると思います。私はそれが第一の価値提案であるとは思わないと思います。 –

答えて

関連する問題