Мне нелегко пытаться выяснить, как использовать Amazon Cognito в своем веб-приложении (на основе Java). Я хочу иметь какой-то аутентификационный центр (Amazon Cognito) для аутентификации пользователя с несколькими Auth Providers - вот почему я хочу использовать Amazon Cognito! :)Authenticate with Cognito Federated Identities
Во-первых, я настроил пул пользователей (у меня есть UserPoolId: eu-central-1_xxxxxxxxxx) и создал там одного пользователя. Затем я создал Identity Pool с IdentityPoolId (eu-central-1: yyyyyyyyyyy). Затем я аутентифицирую с помощью AWS JavaScript SDK для UserPool, чтобы получить idToken, и он работает отлично! Я получаю idToken от Cognito UserPool. Затем я отправляю этот idToken в свое backend-приложение (на основе Java), и там я хочу проверить этот idToken с IdentityPool. Я добавил новый Authentication Provider - Cognito с UserPoolId и недавно созданный идентификатор приложения, который я добавил в UserPool. Я пытался следовать с этим руководством: https://aws.amazon.com/blogs/mobile/use-amazon-cognito-in-your-website-for-simple-aws-authentication/ Но каждый раз, когда я делаю
GetID
запрос I Recevied Exception с
com.amazonaws.services.cognitoidentity.model.NotAuthorizedException: Token is not from a supported provider of this identity pool.
Мой Java код ниже:
final AmazonCognitoIdentityClient identityClient = new AmazonCognitoIdentityClient(
new BasicAWSCredentials("accessKey", "secretKey"));
identityClient.setRegion(Region.getRegion(Regions.EU_CENTRAL_1));
GetIdRequest idRequest = new GetIdRequest();
idRequest.setAccountId("accountId");
idRequest.setIdentityPoolId(identityPoolId);
final String providerName = "cognito-idp.eu-central-1.amazonaws.com/eu-central-1_xxxxxxxx";
Map providerTokens = new HashMap();
providerTokens.put(providerName, idToken);
idRequest.setLogins(providerTokens);
GetIdResult idResp = identityClient.getId(idRequest);
ли кто-нибудь мог Помогите мне с этой задачей? Может быть, я что-то делаю неправильно?
Спасибо, Камиль :)