Я создаю приложение для Android, которое будет использовать Cognito для аутентификации пользователей. Я использую идентификаторы, прошедшие проверку подлинности разработчика, и успешно извлекаю идентификатор удостоверения и токен из моей серверной службы, однако я не могу понять, как использовать идентификатор удостоверения и токен для S3. Я сделал это успешно в JavaScript, вот так...
AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
IdentityId: identityid,
Logins: {
'cognito-identity.amazonaws.com': token
}
});
Я пробовал с...
Map logins = new HashMap();;
logins.put("cognito-identity.amazonaws.com", token);
credentials = new CognitoCachingCredentialsProvider (
context,
"us-east-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
Regions.US_EAST_1
);
credentials.setLogins(logins);
s3 = new AmazonS3Client(credentials);
List bucket = s3.listBuckets();
но это вызывает исключение...
Неверный токен для входа. Невозможно передать токен Cognito. Я также попытался реализовать свой собственный класс поставщика удостоверений, как описано здесь...
https://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html
но и это безуспешно. Может ли кто-нибудь указать мне в правильном направлении?
Заранее спасибо.