【发布时间】:2016-06-29 21:02:09
【问题描述】:
我正在构建一个使用 Cognito 进行用户身份验证的 Android 应用。我正在使用 Developer Authenticated Identities 并成功从我的后端服务检索身份 ID 和令牌,但是我无法弄清楚如何使用 S3 的身份 ID 和令牌。我已经在 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
但这也不成功。有人可以指出我正确的方向吗?
提前致谢。
【问题讨论】:
-
您是否将您的身份提供者与 Cognito 示例应用程序中的身份提供者进行了比较?如果是这样,并且您仍然遇到问题,示例代码将有助于调试您的问题。 github.com/awslabs/aws-sdk-android-samples/blob/master/…
标签: android amazon-web-services amazon-s3 amazon-cognito