2016-10-12 14 views
0

С AWS iOS SDK 2.4.0 Документация Amazon позади. Страницы для написания кода для поддержки Federated Identities, в частности, как обновить идентификаторы токенов, больше не отражают код.Документация AWS iOS SDK 2.4.0 и Cognito

Эта страница, например, http://docs.aws.amazon.com/cognito/latest/developerguide/open-id.html, относится к credentialsProvider.logins, который не присутствует в SDK 2.4.0

Кто-нибудь знает, если кто-то зарегистрировал этот аспект Амазонки IOS SDK? Или Амазонка где-то еще?

Amazon теперь выпустил 2.4.10, и его фокус, я бы сказал, переместился в продукт User Pools, что привело меня к опасениям, что продукт AWS Federated Identities может быть скоро устарел.

ответ

2

Федеративные идентификаторы не подлежат устареванию. Мы будем обновлять документы. Тем временем я могу предоставить некоторые инструкции по остановке. В 2.4 словарь логинов переключился на модель pull. SDK попросит вас обновить словарь во всех случаях, когда необходимо обновить учетные данные AWS. Чтобы использовать его, предоставьте реализацию AWSIdentityProviderManager вашему провайдеру учетных данных. Ниже приведен неполный код, в котором показано, как реализовать метод входа. Он показывает, как сделать это синхронно, если у вас текущий токен и асинхронно, если вам нужно вызвать службу для ее получения.

Синхронно получить маркер

- (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"}]]; 
    } 
} 
+0

Как использовать синхронный метод выше? Я получаю несовместимый тип указателя. – cdub

+0

Я тоже использую федеративные идентификаторы, которые, похоже, работают с моим кодом. Но проблема с использованием токенов: http://stackoverflow.com/questions/41393152/verifying-user-is-authenticated-using-aws-ios-sdk/41397696#41397696 Как вы их обновляете? Я использую лямбду, чтобы получить их. – cdub

 Смежные вопросы

  • Нет связанных вопросов^_^