AWS iOS SDK 2.4.0& Cognito文档

时间:2016-10-12 14:05:06

标签: amazon-cognito federated-identity

借助AWS iOS SDK 2.4.0,亚马逊的文档落后了。编写代码以支持联合身份的页面,特别是如何刷新令牌ID不再反映代码。

此页面,例如http://docs.aws.amazon.com/cognito/latest/developerguide/open-id.html,是指SDK 2.4.0中不存在的gst-launch-1.0 ... ! tsparse set-timestamps=true ! video/mpegts ! tsdemux ! ...

有没有人知道是否有其他人记录了亚马逊iOS SDK的这方面?或亚马逊的其他地方?

亚马逊现已发布2.4.10,其重点,我会说,已转移到其用户池产品,让我担心AWS Federated Identities产品可能很快就会被弃用。

1 个答案:

答案 0 :(得分:2)

联合身份不会被弃用。我们将更新文档。与此同时,我可以提供一些权宜之计。在2.4中,登录字典切换到拉模型。每当需要刷新AWS凭证时,SDK都会要求您提供更新的登录字典。要使用它,请向您的凭据提供程序提供AWSIdentityProviderManager的实现。下面是一些部分代码,向您展示如何实现logins方法。它显示了如果你有一个当前令牌,如果你必须调用一个服务来获得一个令牌,它是如何同步地执行它。

同步获取令牌

- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins {
    return [AWSTask taskWithResult: @{ @"login.provider.com" : token}];
}

异步获取令牌

- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins {
    AWSTaskCompletionSource<NSString*> *token = [AWSTaskCompletionSource new];
    [self getOpenIdToken:token];
    return [token.task continueWithSuccessBlock:^id _Nullable(AWSTask<NSString *> * _Nonnull task) {
        return [AWSTask taskWithResult: @{ @"login.provider.com" : task.result }];
    }];
}

- (void) getOpenIdToken: (AWSTaskCompletionSource <NSString*>*) token {
    //call your server to get the token
    //...

    if(success){
        token.result = oidcTokenFromServer;
    }else {
        [token setError:[NSError errorWithDomain:@"oidc"
                                            code:-1
                                        userInfo:@{@"error":@"Unable to get open id connect token"}]];
    }
}