4D v16.3

On 4D Mobile Authentication database method

Accueil

 
4D v16.3
On 4D Mobile Authentication database method

On 4D Mobile Authentication database method 


 

$1, $2, $3 -> On 4D Mobile Authentication database method -> $0 
Paramètre Type   Description
$1  Texte in Nom d’utilisateur
$2  Texte in Mot de passe
$3  Booléen in Vrai = mode Digest, Faux = mode Basic
$0  Booléen in Vrai = requête acceptée, Faux = requête rejetée

La On 4D Mobile Authentication database method vous permet de contrôler de manière personnalisée l’ouverture des sessions 4D Mobile (via REST) sur 4D. Cette méthode base est principalement destinée au filtrage des connexions lors de la mise en place d’une liaison entre un Wakanda Server et 4D.

Lorsque la demande d’ouverture de session 4D Mobile provient de Wakanda Server via la méthode mergeOutsideCatalog() (cas général), les identifiants de connexion sont fournis dans l’en-tête de la requête. La On 4D Mobile Authentication database method est appelée afin de vous permettre d’évaluer ces identifiants. Vous pouvez utiliser la liste des utilisateurs de la base 4D ou votre propre table d’identifiants.

Important : Lorsque la On 4D Mobile Authentication database method est définie (c’est-à-dire, lorsqu’elle contient du code), 4D lui délègue entièrement le contrôle des requêtes 4D Mobile : le paramétrage éventuellement effectué dans le menu "Lecture/Ecriture" de la page Web/4D Mobile des propriétés de la base est ignoré (cf. manuel Mode Développement).

La méthode base reçoit deux paramètres de type texte ($1 et $2) et un booléen ($3), passés par 4D, et retourne un booléen, $0. Vous devez déclarer ces paramètres de la manière suivante :

     //Méthode base Sur authentification 4D Mobile
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  ... // Code pour la méthode

$1 contient le nom d’utilisateur et $2 le mot de passe utilisés pour la connexion. 

Le mot de passe ($2) peut être reçu soit en clair soit sous forme hachée, en fonction du mode utilisé par la requête. Pour vous permettre d’effectuer le traitement approprié, ce mode est indiqué par le paramètre $3 :

  • si le mot de passe a été envoyé en clair (mode Basic), $3 retourne Faux.
  • si le mot de passe a été envoyé sous forme hachée (mode Digest), $3 retourne Vrai.

Lorsque la demande de connexion 4D Mobile provient de Wakanda Server, le mot de passe est toujours envoyé sous forme hachée. 

Vous devez contrôler les identifiants de la connexion 4D Mobile dans la méthode base. Généralement, vous contrôlerez le nom et le mot de passe à l’aide d’une table d’utilisateurs personnalisée. Si les identifiants sont valides, passez Vrai dans $0. La requête est alors acceptée, 4D l’exécute et retourne le résultat en JSON.
Sinon, passez Faux dans $0, dans ce cas la connexion est rejetée et le serveur retournera une erreur d’authentification à l’expéditeur de la requête. 

Si l’utilisateur est référencé dans la liste des utilisateurs 4D de la base, vous pouvez contrôler directement le mot de passe à l’aide de l’instruction suivante :

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

La commande Validate password accepte un nom d’utilisateur en premier paramètre ainsi qu’un paramètre optionnel indiquant si le mot de passe est exprimé sous forme hachée.

Si vous souhaitez utiliser votre propre liste d’utilisateurs extérieurement à la liste de la base 4D, vous pouvez stocker leurs mots de passe sous une forme hachée en utilisant le même algorithme que celui utilisé par Wakanda Server lors de l’envoi de la requête de connexion à la On 4D Mobile Authentication database method dans $2. Pour hacher un mot de passe selon cette méthode, il suffit d’écrire :

 $MdPHaché :=Generate digest($MdPClair ;4D digest)

La commande Generate digest accepte 4D digest comme algorithme de hachage, correspondant à la méthode utilisée par 4D pour sa gestion interne des mots de passe.

Cet exemple n’accepte que l’utilisateur "admin" avec le mot de passe "123" ne correspondant pas à un utilisateur 4D :

     //Méthode base sur authentification 4D Mobile
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
     //$1 : utilisateur
     //$2 : mot de passe
     //$3 : mode digest
 If($1="admin")
       If($3)
          $0:=($2=Generate digest("123";4D digest))
       Else
          $0:=($2="123")
       End if
 Else
       $0:=False
 End if

Cet exemple de On 4D Mobile Authentication database method vérifie que la demande de connexion provient d’un des deux serveurs Wakanda autorisés, enregistrés dans les utilisateurs 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

 
PROPRIÉTÉS 

Produit : 4D
Thème : Méthodes base
Numéro : 3367

 
HISTORIQUE 

Créé : 4D v14
Renommé : 4D v14 R3

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)