ios - 在iOS中使用Amazon Cognito调用GetID

标签 ios amazon-web-services amazon-cognito aws-mobilehub

我正在关注亚马逊的这篇博客文章:https://mobile.awsblog.com/post/Tx2UQN4KWI6GDJL/Understanding-Amazon-Cognito-Authentication

我有这样的设置:

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"IdentityPool"];

AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];

AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;

在iOS中如何调用GetID?

最佳答案

您必须getId,然后刷新凭据。首先要做的是:

对象:

// Retrieve your Amazon Cognito ID
[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) {
    if (task.error) {
        NSLog(@"Error: %@", task.error);
    }
    else {
        // the task result will contain the identity id
        NSString *cognitoId = task.result;
    }
    return nil;
}];

迅速:
// Retrieve your Amazon Cognito ID
credentialsProvider.getIdentityId().continueWithBlock { (task: AWSTask!) -> AnyObject! in
    if (task.error != nil) {
        print("Error: " + task.error.localizedDescription)
    }
    else {
        // the task result will contain the identity id
        let cognitoId = task.result
    }
    return nil
}

然后刷新:
- (BFTask *)getIdentityId {
    if (self.identityId) {
        return [BFTask taskWithResult:self.identityid];
    } else {
        return [[BFTask taskWithResult:nil] continueWithBlock:^id(BFTask *task) {
            if (!self.identityId) {
                return [self refresh];
            }
            return [BFTask taskWithResult:self.identityid];
        }];
    }
}

- (BFTask *)refresh {
    return [[BFTask taskWithResult:nil] continueWithBlock:^id(BFTask *task) {
          // make a call to your backend, passing logins on provider
          MyLoginResult *result = [MyLogin login:user password:password withLogins:self.logins];
          // results should contain identityid and token, set them on the provider
          self.token = result.token;
          self.identityId = result.identityId;
          // not required, but returning the identityId is useful
          return [BFTask taskWithResult:self.identityid]; 
    }];
}

从文档HERE

关于ios - 在iOS中使用Amazon Cognito调用GetID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37235780/

相关文章:

ios - Xamarin.iOS:NSTemporaryDirectory()

php - 在 PHP 后端 API 中验证 Cognito 身份

amazon-cognito - AWS 认知 : Auto login after registration confirmation

amazon-web-services - 在AWS Cognito中使用AdminCreateUser创建具有自定义属性的用户

java - 如何从curl生成正确的RestTemplate用法?

postgresql - 升级 Postgres Aurora 主版本

ios - 试图快速从 firebase 数据库中获取用户

ios - 使用 CocoaPods 安装的库的正确方法是什么?

ios - 如何将 Storyboard 中的 socket 连接到 UITableViewCell 类 Xcode 11

amazon-web-services - 将 Akamai 与 S3 存储桶集成