4D v16.3

Método base On 4D Mobile Authentication

Inicio

 
4D v16.3
Método base On 4D Mobile Authentication

Método base On 4D Mobile Authentication 


 

$1, $2, $3 -> Método base On 4D Mobile Authentication -> Resultado 
Parámetro Tipo   Descripción
$1  Texto in Nombre de usuario
$2  Texto in Contraseña
$3  Booleano in True = modo Digest, False = modo Basic
Resultado  Booleano in True = petición aceptada, False = petición rechazada

El Método base On 4D Mobile Authentication le permite controlar de forma personalizada la apertura de las sesiones 4D Mobile (vía REST) en 4D. Este método base se destina principalmente al filtrado de conexiones cuando se establece una conexión entre un Wakanda Server y 4D.

Cuando la solicitud de apertura de sesión 4D Mobile proviene de Wakanda Server por medio del método mergeOutsideCatalog() (caso general), los identificadores de conexión están en el encabezado de la solicitud. El Método base On 4D Mobile Authentication se llama para que pueda evaluar estos identificadores. Puede utilizar la lista de usuarios de la base 4D o puede utilizar su propia tabla de identificadores.

Importante: cuando Método base On 4D Mobile Authentication está definido (es decir, cuando contiene código), 4D le delega plenamente el control de las solicitudes 4D Mobile: cualquier ajuste realizado utilizando el menú "Lectura/Escritura" de la página Web/4D Mobile de las Propiedades de la base se ignora (ver el manual de Diseño).

El método base recibe dos parámetros de tipo de texto ($1 y $2)  y un valor booleano ($3), pasado por 4D, y devuelve un booleano, $0. Debe declarar estos parámetros de la siguiente manera:

  //Método base On 4D Mobile Authentication
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
 ... // Código para el método

$1 contiene el nombre del usuario y $2 la contraseña utilizada para la conexión. 

La contraseña ($2) puede recibirse en claro o en forma hash, dependiendo del modo utilizado para la petición. Este modo es indicado por el parámetro $3 para permitirle realizar el procesamiento apropiado:

  • Si la contraseña se envía en claro (modo Basic), $3 devuelve False.
  • If it is sent in hashed form (modo Digest), $3 devuelve True.

Cuando la solicitud de conexión 4D Mobile proviene de Wakanda Server, la contraseña se envía siempre en forma de hash.


Debe controlar los identificadores de la conexión 4D Mobile en el método base. Por lo general , se comprueba el nombre y la contraseña utilizando una tabla de usuarios personalizada. Si los identificadores son válidos, pase True en $0. La solicitud se acepta; 4D la ejecuta y devuelve el resultado en JSON.
De lo contrario, pase False en $0, en este caso, la conexión se rechaza y el servidor devuelve un error de autenticación al remitente de la petición.

Si el usuario es referenciado en la lista de usuarios 4D de la base, puede comprobar la contraseña directamente a través de la siguiente instrucción:

 $0:=Validate password($1;$2;$3)

El comando Validate password se ha extendido para aceptar un nombre de usuario como primer parámetro, así como un parámetro opcional que indica si la contraseña se expresa en forma hash.

Si desea utilizar su propia lista de usuarios externos para la lista de la base 4D, puede guardar sus contraseñas en forma hash utilizando el mismo algoritmo que el utilizado por Wakanda Server cuando se envía la solicitud de conexión a Método base On 4D Mobile Authentication en $2. Para generar el hash para una contraseña utilizando este método, puede escribir:

 $HashedPasswd :=Generate digest($ClearPasswd ;4D digest)

El comando Generate digest acepta 4D digest como algoritmo de hashing, correspondiente al método utilizado por 4D para su gestión interna de palabras claves.

Este ejemplo sólo acepta el usuario "admin" con la contraseña "123" que no corresponde a un usuario 4D:

  //Método base On REST Authentication
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  //$1: usuario
  //$2: contraseña
  //$3: modo digest
 If($1="admin")
    If($3)
       $0:=($2=Generate digest("123";4D digest))
    Else
       $0:=($2="123")
    End if
 Else
    $0:=False
 End if

Este ejemplo de Método base On 4D Mobile Authentication verifica que la demanda de conexión proveniente de uno de los dos servidores Wakanda autorizados, guardados en los usuarios de la base 4D:

 C_TEXT($1;$2)
 C_BOOLEAN($0)
 ON ERR CALL("4DMOBILE_error")
 If($1="WAK1")|($1="WAK2")
    $0:=Validate password($1;$2;$3)
 Else
    $0:=False
End case

 
PROPIEDADES 

Producto: 4D
Tema: Métodos base
Número 3367

 
HISTORIA 

Creado por: 4D v14
Renombrar: 4D v14 R3

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)