Cognito-Authentifizierung funktioniert, aber Fehler werden angezeigt?

rundsätzlich verwende ich eine vom Entwickler authentifizierte Identität, um meine Benutzer zu authentifizieren. Auch wenn dieser Fehler angezeigt wird:

AWSiOSSDKv2 [Ausführlich] AWSURLResponseSerialization.m Zeile: 87 | - [AWSJSONResponseSerializer responseObjectForResponse: originalRequest: currentRequest: data: error:] | Antworttext: [{"__type": "InvalidParameterException", "message": "Bitte geben Sie einen gültigen öffentlichen Anbieter an"}] 20.10.2015 17: 50: 19.251 BusyTime [56549: 7365231] AWSiOSSDKv2 [Fehler] AWSCredentialsProvider.m Zeile: 435 | __73- [AWSCognitoCredentialsProvider getCredentialsWithCognito: authenticated:] _ block_invoke | GetCredentialsForIdentity fehlgeschlagen. Fehler ist [Error Domain = com.amazonaws.AWSCognitoIdentityErrorDomain Code = 7 "Der Vorgang konnte nicht abgeschlossen werden. (Com.amazonaws.AWSCognitoIdentityErrorDomain Fehler 7.)" UserInfo = 0x7f9d9342dde0 {__type = InvalidParameterBitte geben Sie einen gültigen Versorger an }]

Obwohl dieser Fehler angezeigt wird, gebe ich meine identityId und mein Token zurück und rufe erfolgreich eine Lambda-Methode auf, für deren Aufruf authentifizierte Berechtigungen erforderlich sind. Ich glaube, es hat etwas mit meiner Refresh-Methode zu tun, bin mir aber nicht ganz sicher. Bitte helfen Sie mir bei der Behebung dieses Fehlers.

my credentials provider code:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    [AWSLogger defaultLogger].logLevel = AWSLogLevelVerbose;
    id<AWSCognitoIdentityProvider> identityProvider = [[BusytimeAuthenticated alloc] initWithRegionType:AWSRegionUSEast1
                                                                                             identityId:nil
                                                                                         identityPoolId:@"EXAMPLEPOOLID"
                                                                                logins:@{@"login.busytimeapp": [defaults objectForKey:@"username"]}
                                                                                           providerName:@"login.busytimeapp"
                                                       ];

    credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1
                                                                   identityProvider:identityProvider
                                                                      unauthRoleArn:nil
                                                                        authRoleArn:nil];

    configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1
                                                credentialsProvider:self.credentialsProvider];
    AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
    [[credentialsProvider refresh] continueWithBlock:^id(BFTask *task){
        [self testAuth];
        return nil;
    }];

Meine Aktualisierungsmethode:

- (BFTask *)refresh {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if (![self authenticatedWithProvider]) {
        return [super getIdentityId];
    }else{
        NSDictionary *post = [[NSDictionary alloc] initWithObjectsAndKeys:
                              [defaults objectForKey:@"username"], @"username",
                              [defaults objectForKey:@"password"], @"password",
                              nil];
        NSError *error;
        NSData *postData = [NSJSONSerialization dataWithJSONObject:post options:0 error:&error];
        NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];
        NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
        [request setURL:[NSURL URLWithString:@"SOMEURL"]];
        [request setHTTPMethod:@"POST"];
        [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
        [request setHTTPBody:postData];
        NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
        __block BOOL isLogged = false;
        [[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
            NSDictionary *newJSON = [NSJSONSerialization JSONObjectWithData:data
                                                                    options:0
                                                                      error:&error];
            isLogged = true;
            if(!newJSON){
                NSLog(@"DID NOT AUTHENTICATE");
            }else{

            self.identityId = [newJSON objectForKey:@"IdentityId" ];
            self.token = [newJSON objectForKey:@"Token" ];
            NSLog(@"Result: %@", newJSON);
            }

        }] resume];

        return [super getIdentityId];

    }
    return [super getIdentityId];
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage