0
AWS의 Node.js로 작성된 람다 함수를 사용하여 사용자를 인증하려고합니다. 나는 지금 붙어있다. 다음 코드는 예상대로 작동하지 않습니다람다 함수와 AWS Cognito를 사용하여 사용자를 인증하는 방법은 무엇입니까?
var AWS = require('aws-sdk');
exports.handler = (event, context, callback) => {
AWS.config.region = 'us-east-1';
var authenticationData = {
Username : 'username',
Password : 'password',
};
var authenticationDetails = new AWS.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
var poolData = { UserPoolId : 'My-Pool-Id',
ClientId : 'My-Client-Id'
};
var userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = {
Username : 'username',
Pool : userPool
};
var cognitoUser = new AWS.CognitoIdentityServiceProvider.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log('access token + ' + result.getAccessToken().getJwtToken());
console.log('idToken + ' + result.idToken.jwtToken);
},
onFailure: function(err) {
alert(err);
},
});
};
에서 제공되는 코드하지만 내가 가진 모든 다음과 같은 오류입니다 :
TypeError: AWS.CognitoIdentityServiceProvider.AuthenticationDetails is not a function
누구든지 지금해야 할 일에 대한 아이디어가 있습니까? 감사합니다.
안녕하세요 @ doorsstuck, 이미 AWS로 변경했지만 동일한 오류가 발생했습니다. 래퍼에 관해서는 잘 모르겠다. 나는 이것에 초보자이다. 내가 한 모든 것은이 코드를 "var AWS = require ('aws-sdk');라고 선언하는 것이 었습니다. 방금 인라인으로 코딩했는데 파일을 업로드하지 않았습니다. 라이브러리를 업로드해야합니까? – blackjack
@blackjack 왜 내가이 로그인 코드를 클라이언트가 아닌 백엔드에 쓰는지 알아 내려고했습니다. 일반적으로 클라이언트에있는 코드를 작성한 다음 다른 AWS 리소스를 호출하는 데 사용하는 자격 증명을 사용합니다. 클라이언트에서 얻은 자격 증명을 사용하여 API 게이트웨이를 호출하고 요청을 인증 할 수도 있습니다. 그리고 그것은 API 게이트웨이로 구축됩니다. 'AWS.CognitoIdentityServiceProvider.AuthenticationDetails'로 변경하여 코드 예제를 업데이트 할 수 있습니까? – doorstuck
나는 틀린 방법으로 갔다 나는 affraid이다. 나는 람다 (lambda)를 사용하는 servless 아키텍처를 구축하여 모든 사용자 인증 및 가입 플로우 (로그인, 재설정 passord, 확인 및 기타)를 관리하려고했습니다. 코드를 변경하고 클라이언트에게 몇 가지 책임을 전하겠습니다. AWS API 게이트웨이가 클라이언트 자격 증명의 유효성을 검사하는 방법을 이해하려고 노력할 것입니다. – blackjack