借助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产品可能很快就会被弃用。
答案 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"}]];
}
}