2016-10-12 5 views
0

Mit AWS iOS SDK 2.4.0 Amazon Dokumentation fiel zurück. Seiten zum Schreiben von Code zur Unterstützung von föderierten Identitäten, insbesondere zum Aktualisieren von Token-IDs, spiegeln den Code nicht mehr wider.AWS iOS SDK 2.4.0 & Cognito-Dokumentation

Diese Seite zum Beispiel http://docs.aws.amazon.com/cognito/latest/developerguide/open-id.html, bezieht sich auf credentialsProvider.logins, die in SDK 2.4.0

Kennt jemand nicht vorhanden ist, wenn jemand anderer diesen Aspekt der Amazon iOS SDK dokumentiert? Oder Amazon woanders?

Amazon hat jetzt 2.4.10 veröffentlicht, und der Fokus, ich würde sagen, ist zu seinem User Pool-Produkt umgezogen, was mich dazu gebracht hat zu befürchten, dass AWS Federated Identities Produkt bald veraltet sein könnte.

Antwort

2

Föderierte Identitäten werden nicht veraltet sein. Wir werden die Dokumente aktualisieren. In der Zwischenzeit kann ich einige Stopgap-Anweisungen bereitstellen. In 2.4 wechselte das Logins-Wörterbuch zu einem Pull-Modell. Das SDK fragt Sie nach einem aktualisierten Logins-Wörterbuch, wenn die AWS-Anmeldeinformationen aktualisiert werden müssen. Um es zu verwenden, stellen Sie Ihrem Anerkennungsanbieter eine Implementierung von AWSIdentityProviderManager bereit. Im Folgenden finden Sie einen Teilcode, der Ihnen zeigt, wie Sie die Logins-Methode implementieren. Es zeigt, wie man es synchron macht, wenn man ein aktuelles Token besitzt, und asynchron, wenn man einen Dienst anrufen muss, um einen zu bekommen.

Synchrone das Token erhalten

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

Asynchron erhalten das 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

Wie verwende ich die synchrone Methode oben? Ich bekomme einen inkompatiblen Zeigertyp. – cdub

+0

Ich verwende auch föderierte Identitäten, die mit meinem Code zu funktionieren scheinen. Aber Probleme mit der Verwendung der Token: http://stackoverflow.com/questions/41393152/verifying-user-is-authenticated-using-aws-ioss-sdk/41397696#41397696 Wie aktualisieren Sie sie? Ich benutze Lambda, um sie zu bekommen. – cdub