Вы упомянули в своем вопросе, что хотели бы предоставить приложению функцию входа в систему с помощью Amazon Cognito.
Amazon Cognito поддерживает два предмета, оба из которых сильно отделены от природы:
- Пулы пользователей
- Идентификационные бассейны
Пулы пользователей позволяют добавлять аутентификацию в ваше веб-приложение или мобильное приложение, в то время как пулы идентификации предоставляют проверенным / непроверенным пользователям доступ к набору ресурсов AWS, как указано в роли IAM в настройках пула идентификаторов. Cognito Identity Pools не служит в качестве аутентификатора, но вместо этого он служит авторизатором и передает временные учетные данные AWS после выполнения вызова API get-credentials-for-identity в серверной части.
Исходя из того, что я понимаю из вашего сценария использования, вы хотели бы, чтобы в вашем веб-приложении JavaScript была кнопка «Войти через Amazon», которая перенесет вас на веб-страницу после успешной проверки JWT [1].
Для достижения этого варианта использования необходимо использовать Amazon Cognito User Pools. Во-первых, вам нужно будет интегрировать Amazon в качестве поставщика удостоверений в созданный пул пользователей [2].
После этого вам нужно упомянуть то же самое в вашем коде, инициируя объект аутентификации для вашего пула пользователей:
function initCognitoSDK() {
var authData = {
ClientId : '<TODO: your app client ID here>', // Your client id here
AppWebDomain : '<TODO: your app web domain here>', // Exclude the "https://" part.
TokenScopesArray : <TODO: your scope array here>, // like ['openid','email','phone']...
RedirectUriSignIn : '<TODO: your redirect url when signed in here>',
RedirectUriSignOut : '<TODO: your redirect url when signed out here>',
IdentityProvider : '<TODO: your identity provider you want to specify here>',
UserPoolId : '<TODO: your user pool id here>',
AdvancedSecurityDataCollectionFlag : <TODO: boolean value indicating whether you want to enable advanced security data collection>
};
При разработке приложения вы можете обратиться к этому примеру приложения [3], так как он имеет тот же вариант использования.
Надеюсь, этот ответ поможет вам.
Ссылки
[1]. https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html
[2]. https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-social-idp.html
[3]. https://github.com/aws/amazon-cognito-auth-js/tree/master/sample