AWS Cognito 身份空

Posted

技术标签:

【中文标题】AWS Cognito 身份空【英文标题】:AWS Cognito Identity Null 【发布时间】:2014-10-04 09:31:51 【问题描述】:

我正在使用 AWS Cognito 进行用户身份验证,我正在尝试测试未经身份验证的用户,但我从 Cognito 得到的只是一个空身份。下面的代码是关于 viewDidLoad 方法的:

AWSCognitoCredentialsProvider *credentialsProvider = [AWSCognitoCredentialsProvider
                       credentialsWithRegionType:AWSRegionUSEast1
                       accountId:@"XXXXXXXXXXXX"
                       identityPoolId:@"us-east-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
                       unauthRoleArn:@"arn:aws:iam::XXXXXXXXXXXX:role/Cognito_XXXXXXXXXUnauth_DefaultRole"
                       authRoleArn:@"arn:aws:iam::XXXXXXXXXXXX:role/Cognito_XXXXXXXXXAuth_DefaultRole"];

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

[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;

[[credentialsProvider getIdentityId] continueWithSuccessBlock:^id(BFTask *task)
    NSString* cognitoId = credentialsProvider.identityId;
    NSLog(@"cognitoId: %@", cognitoId);
    //[self launchCount];
    return nil;
];

所以从上面的 NSLog 我得到:

cognitoId: (null)

以下是授权和未授权用户的认知认证策略:


  "Version": "2012-10-17",
  "Statement":[
  "Effect":"Allow",
  "Action":"cognito-sync:*",
  "Resource":["arn:aws:cognito-sync:us-east-1:XXXXXXXXXXXX:identitypool/$cognito- identity.amazonaws.com:aud/identity/$cognito-identity.amazonaws.com:sub/*"]
  ]

任何想法可能是什么,或者我做错了什么?

【问题讨论】:

您好,我已经进行了这种身份验证,问题是您是否为认知配置了身份池和角色? 是的,我配置了它们,上面的配置是针对授权和未授权的角色。 显示下面代码块的错误。 【参考方案1】:

请运行此代码并告知错误。

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

if (task.error == nil)

   NSString* cognitoId = credentialsProvider.identityId;
   NSLog(@"cognitoId: %@", cognitoId);               

else

    NSLog(@"Error : %@", task.error);


return nil;
];

【讨论】:

它确实有效,cognito 回复了我以下内容: cognitoId: us-east-1:a84b2f24-2759-48ce-aee1-80dcbb694919 那么,你能解释一下发生了什么吗? 你的问题解决了。你连接正确。如果是,请检查正确的答案。

以上是关于AWS Cognito 身份空的主要内容,如果未能解决你的问题,请参考以下文章

具有 Cognito 联合身份的 AWS AppSync IAM 授权

AWS Cognito 用户身份验证

AWS Lambda、API 网关和 Cognito:如何在 lambda 函数中获取身份对象?

AWS Cognito 作为网站的 Django 身份验证后端

使用 AWS cognito 进行匿名身份验证

R使用AWS Cognito进行Shiny身份验证