Amazon Web Services:错误 - 请求中包含的安全令牌无效

时间:2014-12-22 18:10:19

标签: ios iphone amazon-web-services amazon-cognito

我在iOS应用程序中为Amazon Cognito us设置了开发人员身份验证身份集

我已按照文档中的教程进行操作: Using Developer Authenticated Identities

我的后端能够生成令牌并获得identityIds没有问题。 我可以按照指示在我的iOS应用中初始化cognito。 但是我在发出dynamoDb请求时会收到错误

The security token included in the request is invalid

Cognito初始化代码:

 MyIdentityProvider *identityProvider = [MyIdentityProvider new];
[identityProvider setIdentityPoolId:COGNITO_POOL_ID];

AWSCognitoCredentialsProvider *credentialsProvider  = [[AWSCognitoCredentialsProvider alloc]
                                                       initWithRegionType:AWSRegionUSEast1
                                                       identityProvider:identityProvider
                                                       unauthRoleArn:nil
                                                       authRoleArn:COGNITO_ROLE_AUTH];




AWSServiceConfiguration *configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSEast1
                                                                      credentialsProvider:credentialsProvider];

[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;





[[credentialsProvider getIdentityId] continueWithSuccessBlock:^id(BFTask *task){

 //In here I can see that everything is ok.
 //I have a token and cognitoId
 //But despite this, when I make requests I get "The security token included in the request is  invalid"

 return nil;
}];

有谁知道我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

getIdentityId仅确保您获得identityId,您可能希望验证您是否可以在凭据提供程序上成功调用refresh,因为这将确保您能够成功获取凭据。在生产中不必明确地调用refresh,但在测试中可能是有价值的。

有些事情也可能让你失望,那就是你没有包含一个不道德的角色。确保您的身份提供商没有遇到this question中提到的问题,这会阻止其获取您的身份验证角色。