Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
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 devolver
As 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 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:
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
4D for iOS Documentation
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 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)