AWS iOS SDK 2.4.0 和 Cognito 文档
AWS iOS SDK 2.4.0 & Cognito documentation
使用 AWS iOS SDK 2.4.0 Amazon 的文档落后了。有关编写代码以支持联合身份的页面,尤其是如何刷新令牌 ID 的页面不再反映代码。
例如,此页面 http://docs.aws.amazon.com/cognito/latest/developerguide/open-id.html 指的是 credentialsProvider.logins
,它在 SDK 2.4.0
中不存在
有谁知道是否有其他人记录了亚马逊 iOS SDK 的这方面内容?还是其他地方的亚马逊?
Amazon 现在已经发布了 2.4.10,我想说,它的重点已经转移到它的用户池产品上,这让我担心 AWS Federated Identities 产品可能很快就会被弃用。
联合身份不会被弃用。我们将更新文档。同时,我可以提供一些权宜之计。在 2.4 中,登录字典切换为拉模型。每当需要刷新 AWS 凭证时,SDK 都会要求您提供更新的登录字典。要使用它,请向您的凭据提供程序提供 AWSIdentityProviderManager 的实现。下面是一些部分代码,向您展示了如何实现登录方法。它显示了如果您有当前令牌如何同步执行此操作,如果您必须调用服务来获取令牌则如何异步执行此操作。
同步获取token
- (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"}]];
}
}
使用 AWS iOS SDK 2.4.0 Amazon 的文档落后了。有关编写代码以支持联合身份的页面,尤其是如何刷新令牌 ID 的页面不再反映代码。
例如,此页面 http://docs.aws.amazon.com/cognito/latest/developerguide/open-id.html 指的是 credentialsProvider.logins
,它在 SDK 2.4.0
有谁知道是否有其他人记录了亚马逊 iOS SDK 的这方面内容?还是其他地方的亚马逊?
Amazon 现在已经发布了 2.4.10,我想说,它的重点已经转移到它的用户池产品上,这让我担心 AWS Federated Identities 产品可能很快就会被弃用。
联合身份不会被弃用。我们将更新文档。同时,我可以提供一些权宜之计。在 2.4 中,登录字典切换为拉模型。每当需要刷新 AWS 凭证时,SDK 都会要求您提供更新的登录字典。要使用它,请向您的凭据提供程序提供 AWSIdentityProviderManager 的实现。下面是一些部分代码,向您展示了如何实现登录方法。它显示了如果您有当前令牌如何同步执行此操作,如果您必须调用服务来获取令牌则如何异步执行此操作。
同步获取token
- (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"}]];
}
}