4D v16.3

Méthode base Sur authentification 4D Mobile

Accueil

 
4D v16.3
Méthode base Sur authentification 4D Mobile

Méthode base Sur authentification 4D Mobile 


 

$1, $2, $3 -> Méthode base Sur authentification 4D Mobile -> $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 Méthode base Sur authentification 4D Mobile 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 Méthode base Sur authentification 4D Mobile 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 Méthode base Sur authentification 4D Mobile 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_TEXTE($1;$2)
 C_BOOLEEN($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:=Valider mot de passe($1;$2;$3)

La commande Valider mot de passe 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 Méthode base Sur authentification 4D Mobile dans $2. Pour hacher un mot de passe selon cette méthode, il suffit d’écrire :

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

La commande Generer digest accepte Digest 4D 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_TEXTE($1;$2)
 C_BOOLEEN($0;$3)
     //$1 : utilisateur
     //$2 : mot de passe
     //$3 : mode digest
 Si($1="admin")
       Si($3)
          $0:=($2=Generer digest("123";Digest 4D))
       Sinon
          $0:=($2="123")
       Fin de si
 Sinon
       $0:=Faux
 Fin de si

Cet exemple de Méthode base Sur authentification 4D Mobile 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_TEXTE($1;$2)
 C_BOOLEEN($0)
 APPELER SUR ERREUR("4DMOBILE_error")
 Si($1="WAK1")|($1="WAK2")
       $0:=Valider mot de passe($1;$2;$3)
 Sinon
       $0:=Faux
Fin de cas

 
PROPRIÉTÉS 

Produit : 4D
Thème : Méthodes base
Numéro : 3367
Nom intl. : On 4D Mobile Authentication database method

 
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)