| 4D v18On Mobile App Authentication database method | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 On Mobile App Authentication database method 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| $1 -> On Mobile App Authentication database method -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| $1 | Objeto |   | Informação passada pela aplicação móvel | |||||
| Resultado | Objeto |   | 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 devolverAs propriedades abaixo são recebidas no parâmetro objeto $1:
| Nome da propriedade | Tipo | Descrição | |
| Texto | Correio eletrônico do usuário. Não obrigatório, pode estar vazio para o acesso de convidados | ||
| application | Objeto | Informação sobre a aplicação móvel | |
| id | Texto | ID da aplicação móvel | |
| name | Texto | Nome da aplicação móvel | |
| version | Texto | Versão da aplicação móvel | |
| device | Objeto | Informação sobre o dispositivo móvel (geralmente, um telefone móvel) | |
| id | Texto | ID de dispositivo único gerado | |
| version | Texto | Versão de sistema do dispositivo | |
| description | Texto | Descrição do dispositivo | |
| simulator | Booleano | True se o dispositivo for um simulador | |
| team | Objeto | Informação de Apple Developer Team | |
| id | Texto | Identificação da máquina (permite aos desenvolvedores utilizar a funcionalidade Build e Run de projeto Xcode) | |
| language | Objeto | Configuração de idioma de dispositivo do usuário | |
| id | Texto | ID de idioma atual de dispositivo de usuário, por exemplo: en_US | |
| region | Texto | Regão atual de dispositivo de usuário, por exemplo: US | |
| code | Texto | Idioma atual de dispositivo de usuário, ex: en | |
| parameters | Objeto | Toda informação adicional que possa ser agregada pela aplicação móvel para uso personalizado | |
| session | Objeto | Informação da sessão | |
| id | Texto | UUID de sessão criado para esta autenticação. Poderia ser armazenado para uso futuro | |
| ip | Texto | Endereç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 propriedade | Tipo | Descrição | 
| success | Booleano | True se a autenticação for exitosa, do contrário False. Se success=False, a conexão é rejeitada. | 
| statusText | Texto | (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 | 
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 ifTambé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:
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
									
									
									MOBILE APP REFRESH SESSIONS
									
									On Mobile App Action database method
									
	Produto: 4D
	Tema: Métodos banco de dados
	
        
        
	
	Criado por: 4D v17 R2
	
	
	
	
	
	Manual de linguagem 4D ( 4D v18)
	
	
	
 Adicionar um comentário
Adicionar um comentário