Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
Método base On Mobile App Authentication
|
$1 -> Método base On Mobile App Authentication -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
$1 | Objeto |
![]() |
Información pasada por la aplicación móvil | |||||
Resultado | Objeto |
![]() |
Estado de autenticación | |||||
El Método base On Mobile App Authentication está a cargo de administrar la autenticación de aplicaciones móviles para 4D Server o 4D Developer. 4D lo llama automáticamente cuando un agente de usuario envía una solicitud de inicio de sesión a 4D Server o 4D Developer por primera vez.
Nota: un agente de usuario se define mediante una ID de aplicación, una ID de dispositivo y una ID de equipo. Estos identificadores se pasan al Método base On Mobile App Authentication (ver abajo).
El Método base On Mobile App Authentication siempre se llama para una primera conexión, incluso si la aplicación móvil se creó en el modo Invitado.
El método recibe toda la información necesaria de la aplicación móvil en el parámetro $1 (objeto) y debe devolver un estado de autenticación en el parámetro $0 (objeto). Debe declarar e inicializar estos parámetros de la siguiente forma:
//Método base On Mobile App Authentication
C_OBJECT($0;$1)
// ...Código para el método
$0:=New object //no olvide crear el objeto a devolver
Las siguientes propiedades se reciben en el parámetro objeto $1:
Nombre de la propiedad | Tipo | Descripción | |
Texto | Correo electrónico del usuario. No obligatorio, puede estar vacío para el acceso de invitados | ||
application | Objeto | Información sobre la aplicación móvil | |
id | Texto | ID de la aplicación móvil | |
name | Texto | Nombre de la aplicación móvil | |
version | Texto | Versión de la aplicación móvil | |
device | Objeto | Información sobre el dispositivo móvil (generalmente, un teléfono móvil) | |
id | Texto | ID de dispositivo único generado | |
version | Texto | Versión del sistema del dispositivo | |
description | Texto | Descripción del dispositivo | |
simulator | Booleano | True si el dispositivo es un simulador | |
team | Objeto | Información del Apple Developer Team | |
id | Texto | Identificación del equipo (permite a los desarrolladores utilizar la funcionalidad Build y Run del proyecto Xcode) | |
language | Objeto | Configuración del idioma del dispositivo del usuario | |
id | Texto | ID del idioma actual del dispositivo del usuario, por ejemplo: en_US | |
region | Texto | Región actual del dispositivo del usuario, por ejemplo: US | |
code | Texto | Idioma actual del dispositivo del usuario, ej: en | |
parameters | Objeto | Toda información adicional que pueda ser agregada por la aplicación móvil para uso personalizado | |
session | Objeto | Información de la sesión | |
id | Texto | UUID de sesión creado para esta autenticación. Podría ser almacenado para uso futuro | |
ip | Texto | Dirección IP del cliente |
Después de procesar la información, el método de la base de datos debe devolver un objeto con las siguientes propiedades en $0:
Nombre de la propiedad | Tipo | Descripción |
userInfo | Objeto | Valores del usuario para filtrar las peticiones. |
success | Booleano | True si la autenticación es exitosa, de lo contrario False. Si success=False, la conexión es denegada. |
statusText | Texto | (Opcional) Mensaje para mostrar en la aplicación móvil. Si success=true, mensaje de bienvenida; si success=false, se puede utilizar para dar al usuario una explicación |
La conexión se acepta automáticamente si proviene de "localhost" ya que se considera una conexión de prueba de desarrollador.
Básicamente, la autenticación de una solicitud de conexión de aplicación móvil se basa en el correo electrónico dado. Por ejemplo, si desea otorgar acceso solo a conexiones de correos electrónicos en el dominio 4d.com, puede escribir en el Método base On Mobile App Authentication:
If($1.email="@"+Char(At sign)+"4d.com")
$0.success:=True
End if
También puede identificar al agente de usuario que utiliza la aplicacion.id, device.id, y team.id del objeto $1 y decide permitir o denegar el acceso.
Si la aplicación móvil se ha creado sin la opción "Requiere un correo electrónico para conectarse", se trata de una aplicación "modo invitado". Luego, la cadena $1.email se dará vacía. En este caso, puede:
Este es un ejemplo de plantilla para un Método base On Mobile App Authentication:
//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 //Information provided by mobile application
$Obj_response:=New object //To return in $0 after processing
//Obtener correo electrónico del usuario
$Txt_email:=String($Obj_request.email)
If(Length($Txt_email)=0) //no se suministró email
// Modo invitado - Permitir o denegar conexión
$Obj_response.success:=True
// $Obj_response.success:=False si desea denegar acceso invitado
// Mensaje de bienvenida opcional para mostar una App móvil.
$Obj_response.statusText:="Welcome to my application"
Else
// Modo autenticado - Permite o no la conexión
If(Is compiled mode) // Versión despliegue
//Permite, por ejemplo, emails desde el dominio 4D.com
$Obj_response.success:=($Obj_request.email=("@"+Char(At sign)+"4d.com"))
Else //Versión Desarrollo
//Permite todas las direcciones con propósitos de prueba
$Obj_response.success:=True
End if
If($Obj_response.success)
//Mensaje de bienvenida opcional para mostrar una App móvil.
$Obj_response.statusText:="Authentication successful"
Else
$Obj_response.statusText:=$Obj_request.email+" is not an authorized email address."
End if
End if
// Obtener información de la App si se necesita identificación (opcional)
If($Obj_request.application#Null)
$Txt_appID:=$Obj_request.application.id // ID App
$Txt_appName:=$Obj_request.application.name // Nombre App
$Txt_appVersion:=$Obj_request.application.version // Versión App
End if
//Obtener información del dispositivo si se necesita identificación (opcional)
If($Obj_request.device#Null)
$Txt_device:=$Obj_request.device.description //Descripción del dispositivo
$Txt_deviceID:=$Obj_request.device.id //Id del dispositivo
$Txt_osVersion:=$Obj_request.device.version //Versión del sistema
$Boo_simulator:=$Obj_request.device.simulator //True si el dispositivo es un Simulador
End if
//Obtenga la información del equipo si es necesario (opcional)
If($Obj_request.team#Null)
$Txt_teamID:=$Obj_request.team.id //ID del equipo
End if
//Obtenga la información del idioma del usuario (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
//Obtenga la información de la sesión
If($Obj_request.session#Null)
//Podría ser almacenado para uso futuro.
$Txt_sessionId:=$Obj_request.session.id //UUID creado para esta autenticación
$Txt_IP:=$Obj_request.session.ip //dirección IP
End if
//Obtener los parámetros de la aplicación
If($Obj_request.parameters#Null)
//Cualquier información adicional que pueda ser agregada por la aplicación móvil para uso personalizado (C_OBJECT)
End if
$0:=$Obj_response
4D for iOS Documentation
Método base On Mobile App Action
MOBILE APP REFRESH SESSIONS
Producto: 4D
Tema: Métodos base
Creado por: 4D v17 R2
Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)