Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
Método base On Mobile App Authentication

Método base On Mobile App Authentication 


 

$1 -> Método base On Mobile App Authentication -> Resultado 
Parámetro Tipo   Descripción
$1  Objeto in Información pasada por la aplicación móvil
Resultado  Objeto in 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 propiedadTipoDescripción
emailTextoCorreo electrónico del usuario. No obligatorio, puede estar vacío para el acceso de invitados
applicationObjetoInformación sobre la aplicación móvil
idTextoID de la aplicación móvil
nameTextoNombre de la aplicación móvil
versionTextoVersión de la aplicación móvil
deviceObjetoInformación sobre el dispositivo móvil (generalmente, un teléfono móvil)
idTextoID de dispositivo único generado
versionTextoVersión del sistema del dispositivo
descriptionTextoDescripción del dispositivo
simulatorBooleanoTrue si el dispositivo es un simulador
teamObjetoInformación del Apple Developer Team
idTextoIdentificación del equipo (permite a los desarrolladores utilizar la funcionalidad Build y Run del proyecto Xcode)
languageObjetoConfiguración del idioma del dispositivo del usuario
idTextoID del idioma actual del dispositivo del usuario, por ejemplo: en_US
regionTextoRegión actual del dispositivo del usuario, por ejemplo: US
codeTextoIdioma actual del dispositivo del usuario, ej: en
parametersObjetoToda información adicional que pueda ser agregada por la aplicación móvil para uso personalizado
sessionObjetoInformación de la sesión
idTextoUUID de sesión creado para esta autenticación. Podría ser almacenado para uso futuro
ipTextoDirecció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 propiedadTipoDescripción
userInfoObjetoValores del usuario para filtrar las peticiones.
successBooleanoTrue si la autenticación es exitosa, de lo contrario False. Si success=False, la conexión es denegada.
statusTextTexto(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
  • ningún valor se establece en $0 o $0 no está definido,
  • un valor no válido se establece en $0,
  • Método base On Mobile App Authentication no está definido en la aplicació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:

  • permitir el acceso a los invitados devolviendo True en $0.success,
  • identificar y evaluar el acceso de invitados utilizando la información del agente de usuario, decidir permitir o denegar el acceso. 
  • denegar el acceso a los invitados devolviendo False en $0.success. Esto se puede hacer, por ejemplo, si el servidor está en modo mantenimiento. En este caso, se mostrará un error en la aplicación móvil si el usuario hace clic en el botón Volver a cargar.

Ejemplo  

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



Ver también 

4D for iOS Documentation
Método base On Mobile App Action
MOBILE APP REFRESH SESSIONS

 
PROPIEDADES 

Producto: 4D
Tema: Métodos base

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v17 R2

 
ARTICLE USAGE

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)