11

Jestem początkującym twórcą urządzeń mobilnych. Próbuję uwierzytelnić się pod numerem Amazon Cognito. Najpierw loguję się do Credentials Provider przy użyciu nazwy użytkownika, pinów, platformy i deviceToken przy użyciu modelu usług niestandardowych - otrzymuję następnie tożsamość IdentId, endPoint i token z powrotem. Powiedziano mi, że muszę wymienić token, który otrzymałem i odświeżyć moje dane uwierzytelniające, aby mnie uwierzytelnić pod numerem AWS Cognito i S3. Ale cały proces jest mylący i ma wiele przykładów, które są różne.Uwierzytelnianie AWS na Amazon Cognito

Stworzyłem SignInProvider, rozszerzając AWSSignInProvider, aby uzyskać dostęp do - (void) login: (void (^) (wynik id, błąd NSError *) completionHandel; Mam mój token, punkt końcowy i identityId w mojej metodzie logowania. Co mam zrobić z obsługą zakończenia i co dalej.

@implementation SignInProvider 

+(instanceType) sharedInstance{} 

- (NSString) identityProviderName{} 

- (AWSTask<NSString*>*) token{} 

- (BOOL) isLoggedIn{} 

- (NSSting*) userName{} 

- (void) reloadSession{} 

- (void) login: (void (^) (id result, NSError *error)) completionHanlder{ 

authRequest = [IMPCLDMobileAuthenticationRequest new]; 



    [authRequest setToken:@"930fc1b56d8ca19a84500f9a79af71b65f60331f0242ce4395cdf41186443692"]; 

     [authRequest setPassword:@"pin"]; 

     [authRequest setUsername:@"[email protected]"]; 

     [authRequest setPlatform:@"ios"]; 

     serviceClient = [IMPCLDImpressionInternalMicroserviceClient defaultClient]; 


     [[serviceClient mobileAuthenticationPost:authRequest] continueWithBlock:^id(AWSTask *loginTask) 
    { 


    //what to do here with my loginTask results (token, endpoint, identityId) 

     } 

    return nil; 

    } 
+0

Jakie jest zadanie staramy się osiągnąć? Prześlij coś do wiadra S3 określonego dla użytkownika? Przesyłaj/pobieraj dane do tego samego zasobnika dla całej aplikacji, niezależnie od tego, który to jest użytkownik? – Msencenb

Odpowiedz

2

Aby zamienić/zapisać token AWS trzeba zrobić poniżej swój continueWithBlock

[[serviceClient mobileAuthenticationPost:authRequest] continueWithBlock:^id(AWSTask *loginTask) 
{ 
    AWSSNSCreateEndpointResponse *response = loginTask.result; 
    AWSSNSSubscribeInput *subscribeRequest = [AWSSNSSubscribeInput new]; 
    subscribeRequest.endpoint = response.endpointArn; 
    subscribeRequest.protocols = @"application"; 
    subscribeRequest.topicArn = YOUR_TOPIC_ARN; 
    return [sns subscribe:subscribeRequest]; 
}] continueWithBlock:^id(AWSTask *task) { 
    if (task.cancelled) { 
     NSLog(@"Task cancelled"); 
    } 
    else if (task.error) { 
     NSLog(@"Error occurred: [%@]", task.error); 
    } 
    else { 
     NSLog(@"Success"); 
    } 
    return nil; 
}];