Conheça as Opções de Autenticação dos Seus Aplicativos Oracle Mobile Hub

O Oracle Mobile Hub permite que você autentique suas aplicações móveis usando tecnologias como OAuth, sign-on único ou autenticação básica HTTP.

Antes de autenticar seus aplicativos iOS, você deve importar as seguintes bibliotecas em seu projeto do XCode:

#import "OMCCore/OMCAuthorization.h"
#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCMobileManager.h"

Sobre o Uso do Consumidor OAuth e do HTTP Básico

O Oracle Mobile Hub SDK fornece métodos para tratar a autenticação do usuário.

Use o método a seguir para tratar um usuário que efetua log-in com um nome de usuário e senha:

- (void) authenticate:(NSString *)userName
             password:(NSString *)password
      completionBlock: (nullable OMCErrorCompletionBlock) completionBlock;

Esse método encerra a conexão com o Oracle Mobile Hub e limpa o nome de usuário e a senha da cadeia de chaves do iOS:

-(void) logout: (nullable OMCErrorCompletionBlock) completionBlock;

Sobre o Uso do Sign-on Único com um Token de Terceiros

Você pode usar um token de Terceiros para autenticar seu aplicativo iOS com o Oracle Mobile Hub.

Primeiro, seu aplicativo precisa obter um token do emissor do token de terceiros. A forma como você pode obter o token varia por emissor.

Depois de ter o token, use-o para autenticar. O código neste exemplo verifica se o token já está armazenado no Oracle Mobile Hub antes de efetuar log-in novamente:

-(void) authenticateSSOTokenExchange: (NSString*) token
            storeAccessToken:(BOOL) storeToken
            completionBlock: (OMCErrorCompletionBlock) completionBlock;

Observação:

O tempo de expiração padrão para armazenar um token de terceiros no Oracle Mobile Hub é de 6 horas. Você pode ajustar esse tempo alterando a política Security_TokenExchangeTimeoutSecs.

Você também pode codificar o aplicativo para manter o usuário conectado, mesmo ao fechar e reiniciar o aplicativo.

No método authenticateSSOTokenExchange, se storeAccessToken estiver definido como YES, o token será armazenado no armazenamento seguro e o usuário permanecerá conectado até que o token expire.

Você pode usar o método loadSSOTokenExchange() na sequência de inicialização do aplicativo para carregar o token da cadeia de chaves. (Se um token não puder ser recuperado, o método retornará NO).

Este é um código que tenta carregar um token salvo e, se falhar, reinicia o processo de autenticação:

OMCAuthorization* auth;
if ( [auth loadSSOTokenExchange] ){
	NSLog(@"## Token already found, login skipped.");
    ...
}
else{
	[auth authenticateSSOTokenExchange:thirdPartyToken
	 storeAccessToken:YES
	 completionBlock:^(NSError * _Nullable error) {
					   
	    if( error ){
	        //Show error popup
	    }
	    else{
	        // Login success.
	        ...
	    }
	}];
}

Quando você tem o token armazenado no armazenamento seguro, ele permanece associado ao backend usado originalmente pela aplicação. Portanto, se a aplicação for atualizada para usar um backend móvel diferente (ou uma versão de backend móvel), será necessário limpar o token salvo (usando clearSSOTokenExchange) e autenticar novamente.