2017-01-03 56 views
4

使用V1.10 Cognito用戶羣。如何驗證在亞馬遜cognito身份-JS在以下nodeapp的節點JS

我寫了下面的: 用戶註冊已被證實後,將調用該函數和電子郵件已經過驗證。

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

當的authenticateUser被調用時,我得到「的ReferenceError:導航儀沒有定義」

它看起來像一個瀏覽器呼叫正在嘗試的節點服務器內部。

我創造了這個一個github上的問題和建議是指 「jsbn」: 「^ 0.1.0」, 「sjcl」: 「^ 1.0.3」, 「亞馬遜cognito身份-js「:」^ 1.10.0「, 」aws-sdk「:」^ 2.5.3「

我對軟件包版本進行了更改。不幸的是,它也不適用於此。 我已經創建了一個示例nodejs應用程序,它嘗試使用電子郵件ID和密碼進行身份驗證。

注:該Cognito池設置與電子郵件別名。用戶已創建,確認並通過電子郵件驗證。

來源回購:https://github.com/prem911/cognito-nodejs

就如何解決「找不到導航」任何指針?

+0

Cognito是_users_服務來驗證AWS,不_servers_ 。這段代碼應該放在客戶端。 –

+0

如果是這種情況,那麼暴露客戶端js文件中的aws用戶池ID和aws應用程序客戶端ID是不好的。我能夠從服務器執行聯合身份驗證。這是否也應該從客戶端完成? – prem911

+0

我想你應該回顧一下認知如何工作,如果你認爲揭露這些信息是不好的。我不認爲你明白這是主要的價值主張。 –

回答