4D v16.3

Datenbankmethode On 4D Mobile Authentication

Home

 
4D v16.3
Datenbankmethode On 4D Mobile Authentication

Datenbankmethode On 4D Mobile Authentication 


 

$1, $2, $3 -> Datenbankmethode On 4D Mobile Authentication -> Funktionsergebnis 
Parameter Typ   Beschreibung
$1  Text in Benutzername
$2  Text in Kennwort
$3  Boolean in Wahr = Digest Modus, Falsch = Basic Modus
Funktionsergebnis  Boolean in Wahr = Anfrage angenommen, Falsch = Anfrage verweigert

Die Datenbankmethode On 4D Mobile Authentication bietet einen eigenen Weg, um das Öffnen von 4D Mobile Sessions in 4D (via REST) zu steuern. Sie dient hauptsächlich zum Filtern von Anfragen, wenn eine Verbindung zwischen einem Wakanda Server und 4D hergestellt wird.

Im allgemeinen läuft die Anfrage zum Öffnen einer 4D Mobile Session über die Methode mergeOutsideCatalog(), die Identifier der Verbindung erscheinen im Header der Anfrage. Die Datenbankmethode On 4D Mobile Authentication wird aufgerufen, so dass Sie diese Identifier bewerten können. Sie können die Liste der Benutzer für die 4D Datenbank oder Ihre eigene Tabelle mit Identifiern verwenden.

Wichtig: Ist die Datenbankmethode On 4D Mobile Authentication definiert (z.B. wenn sie Code enthält), delegiert 4D die Kontrolle der 4D Mobile Anfragen komplett an diese Methode. Die Einstellung über das DropDown-Menü "Lesen/Schreiben" auf der Seite Web > 4D Mobile der Datenbank-Eigenschaften wird ignoriert (siehe Abschnitt Zugriff Lesen/Schreiben des Handbuchs 4D Designmodus).

Die Datenbankmethode empfängt zwei Parameter ($1 und $2) vom Typ Text und einen vom Typ Boolean ($3), der von 4D übergeben wird, und gibt ein Boolean $0 zurück. Sie deklarieren diese Parameter wie folgt:

  //Datenbankmethode On 4D Mobile Authentication
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
 ... // Code für die Methode

$1 enthält den Benutzernamen, $2 das Kennwort für die Verbindung

Das Kennwort ($2) wird, je nach dem von der Anfrage verwendeten Modus, in Klartext oder verschlüsselt (Hash) empfangen. Der Modus wird im Parameter $3 angegeben und legt somit das weitere Vorgehen fest:

  • Wird das Kennwort in Klartext gesendet (Basic Modus), gibt $3 False zurück.
  • Wird das Kennwort verschlüsselt (Hash) gesendet (Digest Modus), gibt $3 True zurück.

Bei einer 4D Mobile Verbindungsanfrage von Wakanda Server wird das Kennwort immer verschlüsselt (Hash) gesendet.

Sie müssen die Identifier der 4D Mobile Verbindung in der Datenbankmethode prüfen. In der Regel prüfen Sie Name und Kennwort über eine eigene Benutzertabelle. Bei gültigen Identifiern übergeben Sie True in $0. Die Anfrage wird dann angenommen; 4D führt sie aus und gibt das Ergebnis in JSON zurück.
Andernfalls übergeben Sie False in $0. Dann wird die Verbindung abgewiesen und der Server gibt einen Authentifizierungsfehler an den Absender der Anfrage zurück.

Ist der Benutzer in der Liste der 4D Benutzer der Datenbank eingetragen, können Sie das Kennwort direkt über folgende Anweisung prüfen:

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

Die Funktion Validate password wurde erweitert. Der Benutzername wird jetzt als erster Parameter akzeptiert. Ein optionaler Parameter gibt an, ob das Kennwort verschlüsselt erscheint.

Wollen Sie eine eigene Liste mit Benutzern verwenden, unabhängig von der Liste der 4D Anwendung, können Sie deren Kennwörter verschlüsselt mit demselben Algoritmus sichern, den Wakanda Server beim Senden einer Verbindungsanfrage an die Datenbankmethode On 4D Mobile Authentication in $2 verwendet. Um ein Kennwort mit dieser Methode zu verschlüsseln, schreiben Sie folgende Anweisung:

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

Die Funktion Generate digest akzeptiert 4D digest als Hash-Algorithmus. Diese Funktion verwendet 4D auch zur internen Verwaltung von Kennwörtern.

Dieses Beispiel zur Datenbankmethode On 4D Mobile Authentication akzeptiert nur den Benutzer "admin" mit dem Kennwort "123", der nicht mit einem 4D Benutzer übereinstimmt:

  // Datenbankmethode On 4D Mobile Authentication
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  //$1: user
  //$2: password
  //$3: digest mode
 If($1="admin")
    If($3)
       $0:=($2=Generate digest("123";4D digest))
    Else
       $0:=($2="123")
    End if
 Else
    $0:=False
 End if

Dieses Beispiel zur Datenbankmethode On 4D Mobile Authentication prüft, ob die Verbindungsanfrage von einem der beiden zugelassenen Wakanda Server kommt, die unter den Benutzern der 4D Anwendung gesichert sind:

 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

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datenbankmethoden
Nummer: 3367

 
GESCHICHTE 

Erstellt: 4D v14
Umbenannt: 4D v14 R3

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)