2016-07-31 64 views
0

我正在嘗試註冊一個使用用戶池的用戶,並在我的lambda中使用並修改了示例here中的代碼。如何在Node.js Lambda中使用AWS用戶池功能?

我引用AWS以正常方式:

var AWS = require('aws-sdk'); 

,並試圖引用現有的用戶羣:

AWS.config.region = 'eu-east-1'; 

var poolData = { 
    UserPoolId : 'eu-west-1_xxxxxxx', 
    ClientId : 'xxxxxxx' 
}; 

var userPool = AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 

,但我得到了以下錯誤:

TypeError: AWS.CognitoIdentityServiceProvider.CognitoUserPool is not a function

上午我使用錯誤的SDK? the setup page解釋了aws-cognito-sdk.min.js是完整SDK的變體,但僅引用了Cognito Identity Service,因此我認爲完整的SDK也將允許我訪問它... 任何想法?

回答

3

所以,我理解了它。首先,是的,你可以使用標準的aws-sdk。 這裏是代碼:

var params = { 
    ClientId: 'xxxxxxxxxxxxxx', 
    Password: 'password', 
    Username: 'Ross', 
    UserAttributes: [ 
    { 
     Name: 'email', 
     Value: '[email protected]' 
    } 
    ] 
}; 
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); 
cognitoidentityserviceprovider.signUp(params, function(err, data) { 
    if (err) { 
    console.log(err, err.stack); 
    context.fail(err); 
    } else { 
    console.log(data); 
    context.succeed(data); 
    } 
}); 
+0

完美的一杆解答。我正在尋找一個這樣的簡單例子超過3到4個小時,直到我找到這個。 – user3227262

+0

您好,我正在嘗試使用JS的純SDK來執行Cognito請求,但我看過的示例使用了認知身份SDK。你能告訴我,如果你發現任何材料,並在哪裏,以得到你的答案?謝謝。 –

0

它看起來像你的代碼中有語法錯誤。嘗試改變這一點:

var userPool = newAWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 

要這樣:

var userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
+0

感謝您的發現 - 可能一直在轉移到StackOverflow! – RossP

相關問題