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íticaSecurity_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.