У меня есть некоторая путаница здесь, я работаю над приложением для Android, с PHP-бэкэндом. Я использую другие библиотеки AWS для большинства задач, кроме транзакций и т. Д., Которые я сохранил для бэкэнда. Я использую модификацию для обработки вызовов и ответов PHP API. Я совершенно сбит с толку, есть ли способ, с помощью которого я могу определить идентификатор Cognito идентификатора пользователя, выполняющего запрос к моему веб-API с помощью PHP? Используя API-шлюз, я смогу ограничить доступ только для вошедших в систему пользователей, но определение их идентичности — это API-интерфейс получателя.
Обновить :
Я не хочу использовать API-шлюз в любом сроке. Глючит время ожидания большинства запросов. Сервер обеспечивает лучшую производительность в текущей ситуации.
Любая подсказка или помощь будут очень благодарны.
Поскольку у вас уже есть пользовательская база данных, вам нужно будет использовать удостоверения разработчика в Cognito.
Вам необходимо создать «Пул удостоверений» в разделе «Федеративные идентификаторы» Cognito.
Оттуда вы регистрируете «Custom» провайдера аутентификации .. По сути это строка, с которой вы будете ассоциировать свой идентификатор пользователя с …
Затем вы будете использовать метод CogintoIdentity-> getOpenIdTokenForDeveloperIdentity () для входа ваших пользователей в Amazon.
Вам будет возвращен IdentityID и токен сеанса OpenID, который вы можете отправить в STS для получения временных учетных данных для API AWS … вы также можете использовать этот новый идентификатор для создания наборов данных, связанных с Identity с помощью CognitoSync.
$cognitoIdentityClient->getOpenIdTokenForDeveloperIdentity([
'IdentityPoolId'=>'Your Pool ID',
'Logins'=>[
'your.custom.provider.string'=>'YOUR USER ID'
]
]);
РЕДАКТИРОВАТЬ:
После получения IdentityId … В своем мобильном приложении я использую пользовательские заголовки HTTP для отправки через IdentityId, а также идентификатор пользователя и использую метод lookupDeveloperIdentity для проверки пользователя на стороне сервера.
$cognitoIdentityClient->lookuoDeveloperIdentity([
'IdentityPoolId'=>'Your Pool ID',
'DeveloperUserIdentifier'=>'{X_HTTP_USER_ID}',
'IdentityId'=>{X_HTTP_COGNITO_IDENTITY_ID}
]
]);
Других решений пока нет …