Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
On Mobile App Authentication database method

On Mobile App Authentication database method 


 

$1 -> On Mobile App Authentication database method -> Resultado 
Parâmetro Tipo   Descrição
$1  Objeto in Informação passada pela aplicação móvel
Resultado  Objeto in Estado de autenticação

 On Mobile App Authentication database method é responsável de administrar a autenticação de aplicações móveis para 4D Server ou 4D Developer. 4D o chama automaticamente quando um agente de usuário enviar uma solicitação de início de sessão a 4D Server ou 4D Developer pela primeira vez.

Nota: um agente de usuário se define mediante uma ID de aplicação, uma ID de dispositivo e uma ID de máquina. Estes identificadores são passados a On Mobile App Authentication database method (ver abaixo).

On Mobile App Authentication database method sempre é chamado para uma primeira conexão, mesmo se a aplicação móvel for criada no modo convidado.

O método recebe toda a informação necessária da aplicação móvel no parâmetro $1 (objeto) e deve devolver um estado de autenticação no parâmetro $0 (objeto). Deve declarar e inicializar estes parâmetros da  forma abaixo:

  //Método banco de dados On Mobile App Authentication
 C_OBJECT($0;$1)
  // ...Código para o método
 $0:=New object //não esqueça de criar o objeto a devolver

As propriedades abaixo são recebidas no parâmetro objeto $1:

Nome da propriedadeTipoDescrição
emailTextoCorreio eletrônico do usuário. Não obrigatório, pode estar vazio para o acesso de convidados
applicationObjetoInformação sobre a aplicação móvel
idTextoID da aplicação móvel
nameTextoNome da aplicação móvel
versionTextoVersão da aplicação móvel
deviceObjetoInformação sobre o dispositivo móvel (geralmente, um telefone móvel)
idTextoID de dispositivo único gerado
versionTextoVersão de sistema do dispositivo
descriptionTextoDescrição do dispositivo
simulatorBooleanoTrue se o dispositivo for um simulador
teamObjetoInformação de Apple Developer Team
idTextoIdentificação da máquina (permite aos desenvolvedores utilizar a funcionalidade Build e Run de projeto Xcode)
languageObjetoConfiguração de idioma de dispositivo do usuário
idTextoID de idioma atual de dispositivo de usuário, por exemplo: en_US
regionTextoRegão atual de dispositivo de usuário, por exemplo: US
codeTextoIdioma atual de dispositivo de usuário, ex: en
parametersObjetoToda informação adicional que possa ser agregada pela aplicação móvel para uso personalizado
sessionObjetoInformação da sessão
idTextoUUID de sessão criado para esta autenticação. Poderia ser armazenado para uso futuro
ipTextoEndereço IP de cliente

Depois de processar a informação, o método do banco de dados deve devolver um objeto com as propriedades abaixo em $0:

Nome da propriedadeTipoDescrição
successBooleanoTrue se a autenticação for exitosa, do contrário False. Se success=False, a conexão é rejeitada.
statusTextTexto(Opcional) Mensagem para mostrar na aplicação móvel. Se success=true, mensagem de boas-vindas; se success=false, pode ser utilizado para dar ao usuário uma explicação
  • nenhum valor foi estabelecido em $0 ou $0 não está definido,
  • um valor não válido foi estabelecido em $0,
  • On Mobile App Authentication database method não está definido na aplicação.

A conexão é  aceita automaticamente se vier de "localhost" já que se considera uma conexão de teste de desenvolvedor.

Basicamente, a autenticação de uma solicitação de conexão de aplicação móvel se baseia no correio eletrônico dado. Por exemplo, se quiser outorgar acesso apenas a conexões de correios eletrônicos no domínio 4d.com, pode escrever no On Mobile App Authentication database method:

 If($1.email="@"+Char(At sign)+"4d.com")
    $0.success:=True
 End if

Também pode identificar ao agente de usuário que utilizar a aplicacion.id, device.id, e team.id do objeto $1  e decide permitir ou rejeitar o acesso.

Se a aplicação móvel tiver sido criado sem a opção "Exige um correio eletrônico para conectar-se", se trata de uma aplicação "modo convidado". Portanto, a string $1.email se dará vazia. Neste caso, pode:

  • permitir o acesso aos convidados devolvendo True em $0.success,
  • identificar e avaliar o acesso de convidados utilizando a informação do agente de usuário, decidir permitir ou rejeitar o acesso. 
  • rejeitar o acesso aos convidados devolvendo False em $0.success. Isto pode ser feito, por exemplo, se o servidor estiver em modo manutenção. Neste caso, se mostrará um erro na aplicação móvel se o usuário clicar no botão Voltar a carregar.

Exemplo  

Este é um exemplo de modelo para um On Mobile App Authentication database method:

  //Método bas On Mobile App Authentication
 C_OBJECT($0)
 C_OBJECT($1)
 
 C_BOOLEAN($Boo_simulator)
 C_TEXT($Txt_appID;$Txt_appName;$Txt_appVersion;$Txt_device;$Txt_deviceID;$Txt_email)
 C_TEXT($Txt_IP;$Txt_languageCode;$Txt_languageId;$Txt_languageRegion;$Txt_osVersion;$Txt_sessionId)
 C_TEXT($Txt_teamID)
 C_OBJECT($Obj_request;$Obj_response)
 
 $Obj_request:=$1 //Informação oferecida pela aplicação móvel
 $Obj_response:=New object //Para retornar em $0 depois do processamento
 
  //Obter correio eletrônico do usuário
 $Txt_email:=String($Obj_request.email)
 
 If(Length($Txt_email)=0) //não foi enviado o email
  // Modo invitado - Permitir ou rejeitar a conexão
    $Obj_response.success:=True
  // $Obj_response.success:=False se quiser rejeitar o acesso convidado
 
  // Mensagem de boas vindas opcional para mostar uma App móvel.
    $Obj_response.statusText:="Welcome to my application"
 
 Else
  // Modo autenticado -  Permitir ou não a conexão
    If(Is compiled mode// Versão implantação
 
  //Permite, por exemplo, emails desde o domínio 4D.com
       $Obj_response.success:=($Obj_request.email=("@"+Char(At sign)+"4d.com"))
 
    Else //Versão Desenvolvimento
 
  //Permite todos os endereços com propósitos de teste
       $Obj_response.success:=True
 
    End if
 
    If($Obj_response.success)
 
  //Mensagem de boas vindas opcional para mostrar uma App móvel.
       $Obj_response.statusText:="Authentication successful"
 
    Else
 
       $Obj_response.statusText:=$Obj_request.email+" is not an authorized email address."
 
    End if
 End if
 
  // Obter informação da App se for necessária identificação (opcional)
 If($Obj_request.application#Null)
    $Txt_appID:=$Obj_request.application.id // ID App
    $Txt_appName:=$Obj_request.application.name // Nome App
    $Txt_appVersion:=$Obj_request.application.version // Versão App
 End if
 
  //Obter informação do dispositivo se for necessária identificação (opcional)
 If($Obj_request.device#Null)
    $Txt_device:=$Obj_request.device.description //Descrição do dispositivo
    $Txt_deviceID:=$Obj_request.device.id //Id do dispositivo
    $Txt_osVersion:=$Obj_request.device.version //Versão do sistema
    $Boo_simulator:=$Obj_request.device.simulator //True se o dispositivo for um Simulador
 End if
 
  //Obtenha a informação da máquina se for necessário (opcional)
 If($Obj_request.team#Null)
    $Txt_teamID:=$Obj_request.team.id //ID da máquina
 End if
 
  //Obtenha a informação do idioma do usuário (opcional)
 If($Obj_request.language#Null)
    $Txt_languageCode:=$Obj_request.language.Code
    $Txt_languageId:=$Obj_request.language.id
    $Txt_languageRegion:=$Obj_request.language.region
 End if
 
  //Obtenha a informação da sessão
 If($Obj_request.session#Null)
  //Poderia ser armazenado para uso futuro.
    $Txt_sessionId:=$Obj_request.session.id //UUID criado para esta autenticação
    $Txt_IP:=$Obj_request.session.ip //endereço IP
 End if
 
  //Obter os parâmetros da aplicação
 If($Obj_request.parameters#Null)
  //Qualquer informação adicional que possa ser agregada pela aplicação móvel para uso personalizado (C_OBJECT)
 End if
 
 $0:=$Obj_response



Ver também 

4D for iOS Documentation
MOBILE APP REFRESH SESSIONS
On Mobile App Action database method

 
PROPRIEDADES 

Produto: 4D
Tema: Métodos banco de dados

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v17 R2

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)