2017-01-03 1 views
4

En utilisant v1.10 de amazon-cognito-identity-js dans le fichier nodeapp suivant.Comment authentifier le pool d'utilisateurs Cognito dans le noeud js

J'ai écrit ce qui suit: Cet appel est fait après que l'enregistrement de l'utilisateur a été confirmé et l'e-mail a été vérifié.

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) { 
} 
}); 

Quand authenticateUser est appelé, je reçois le « ReferenceError: navigateur n'est pas défini »

Il ressemble à un appel du navigateur est en cours de tentative dans le serveur de nœud.

j'avais créé un problème de github à ce sujet et la recommandation était de se référer à "jsbn": "^ 0.1.0", "sjcl": "^ 1.0.3", « -Cognito identité amazone -js ":"^1.10.0 ", " aws-sdk ":"^2.5.3 "

J'ai apporté les modifications aux versions du paquet. Malheureusement, cela n'a pas fonctionné avec ça aussi. J'ai créé un exemple d'application nodejs qui essaie de s'authentifier en utilisant un identifiant et un mot de passe. NB: Le pool Cognito est configuré avec le courrier électronique en tant qu'alias. L'utilisateur a été créé, confirmé et vérifié par courrier électronique.

repo Source: https://github.com/prem911/cognito-nodejs

Les pointeurs sur la façon de résoudre le "navigateur introuvable"?

+0

Cognito est un service _users_ pour vous authentifier auprès AWS, non _servers_ . Ce code devrait aller du côté client. –

+0

Si tel est le cas, alors il est mauvais d'exposer l'identifiant du pool d'utilisateurs aws et l'identifiant du client de l'application aws dans le fichier js du client. J'étais capable de faire l'authentification d'identité fédérée du serveur. Est-ce que cela devrait également être fait par le client? – prem911

+0

Je pense que vous devriez revoir comment cognito fonctionne si vous pensez que l'exposition de cette information est mauvaise. Je ne pense pas que vous compreniez que c'est la proposition de valeur primaire. –

Répondre