Я хочу аутентифицировать пользователя и получить токен идентификатора (jwt), используя JavaScript в веб-браузере. Для этого я создал простую страницу входа (в моем пуле пользователей Cognito есть несколько подтвержденных пользователей) в файле html:
<!DOCTYPE html>
<html lang="en">
<head> </head>
<body>
<form
name="authenticate"
onsubmit="return testAuthenticateUser(email.value, password.value);"
>
<div>
<input type="text" placeholder="Enter Email" name="email" id="email" />
</div>
<div>
<input type="text" placeholder="Enter Password" name="password" id="password" />
</div>
<button type="submit"> login </button>
</form>
<script src="amazon-cognito-identity.min.js"></script>
<script>
const poolData = {
UserPoolId: "",
ClientId: "",
},
poolRegion = "",
var loginKey =
"cognito-idp." + poolRegion + ".amazonaws.com/" + poolData.UserPoolId;
async function testAuthenticateUser(email, password) {
var authenticationData = {
Username: email,
Password: password,
};
var authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(
authenticationData
);
var userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
var userData = {
Username: email,
Pool: userPool,
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log(result);
},
onFailure: function (err) {
console.log(err);
},
});
}
</script>
Отправив адрес электронной почты и пароль, он должен вернуться. токен сеанса и информация о пользователе, но он выдает следующую ошибку на консоли отладки браузера всякий раз, когда я отправляю:
Object { code: "NetworkError", name: "Error", message: "Network error" }
Ошибка не имеет для меня никакого смысла, и я не знаю, какой шаг неправильно. Как я могу аутентифицировать пользователя из веб-браузера? Тот же код будет работать с использованием Node-js на сервере.