веб-сервисы amazon — Аутентификация пула пользователей Cognito в переполнении стека

Я разработал приложение для iOS и Android, которое собирает данные с автомобилей, которые отправляются в AWS DynamoDB. Пользователь входит через мобильное приложение, используя Cognito User Pool.

Теперь я хочу разработать веб-страницу для представления данных пользователя. Для этого пользователь должен предоставить свои учетные данные для веб-страницы (SSL), которые используются для получения его информации из базы данных. Код ниже работает хорошо (HTML-форма для получения пользователя / пароля не отображается):

<script src="jsbn.js"></script>
<script src="jsbn2.js"></script>
<script src="sjcl.js"></script>
<script src="/path/to/moment.min.js"></script>
<script src="aws-cognito-sdk.min.js"></script>
<script src="amazon-cognito-identity.min.js"></script>
<script src="/path/to/aws-sdk-2.3.5.js"></script>
<script src="aws-sdk.js"></script>
<script src="aws-sdk.min.js"></script>function completeAndRedirect() {

var authenticationData = {
Username : document.getElementById("UserID").value,
Password : document.getElementById("Password").value,
};

var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
var poolData = { UserPoolId : 'us-west-.......',
ClientId : '...................'
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var userData = {
Username : 'test',
Pool : userPool
};
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);

console.log('userid:'+authenticationData.Username);
console.log('pass:'+authenticationData.Password);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log('access token + ' + result.getAccessToken().getJwtToken());
},

onFailure: function(err) {
console.log('test');
alert(err);
},

});

}

Однако javascript будет работать на стороне клиента и включать все необходимые API и секретные ключи.

Я читал, что php предпочтительнее, так как все останется на стороне сервера.
Однако я не нашел никаких примеров или ссылок, указывающих мне правильное направление.

На данный момент я озадачен, так как не знаю, как двигаться дальше, так как не похоже, что Amazon рекомендует использовать php, учитывая все примеры в JavaScript и соответствующие комментарии на их форуме:Аутентификация пула пользователей с использованием Php

Любая рекомендация для решения этой проблемы в дополнение к шифрованию JavaScript, чтобы запутать ключи?

1

Решение

использование Пулы пользователей Cognito с интегрированной службой идентификации Cognito.

Служба Cognito Federated Identity передает вашим клиентам временные учетные данные AWS, которые можно использовать для проверки подлинности с помощью любой другой службы AWS, которой вы управляете через роли Federated Identity Pool. Вам не потребуется встраивать свой доступ к AWS и секретные ключи в приложение JavaScript, и вы сможете безопасно взаимодействовать со службами AWS.

Пример кода можно найти Вот.

0

Другие решения

Других решений пока нет …