Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
Datenbankmethode On Mobile App Authentication

Datenbankmethode On Mobile App Authentication 


 

$1 -> Datenbankmethode On Mobile App Authentication -> Funktionsergebnis 
Parameter Typ   Beschreibung
$1  Objekt in Von der mobilen Anwendung übergebene Informationen
Funktionsergebnis  Objekt in Status der Authentifizierung

Die Datenbankmethode On Mobile App Authentication verwaltet die Authentifizierung der mobilen app für 4D Server oder 4D Developer. Sie wird automatisch von 4D aufgerufen, wenn ein User Agent zum ersten Mal eine login Anfrage an 4D Server oder 4D Developer sendet.

Hinweis: Ein User Agent wird über eine Application ID, eine Geräte ID und eine Team ID definiert. Diese IDs werden an die Datenbankmethode On Mobile App Authentication übergeben (siehe unten).

Die Datenbankmethode On Mobile App Authentication wird immer für die erste Verbindung aufgerufen, auch wenn die mobile Anwendung im Guest Modus erstellt wurde.

Die Methode empfängt im Parameter $1 (Objekt) alle notwendigen Angaben von der mobilen Anwendung und gibt im Parameter $0 (Objekt) einen Authentifizierungsstatus zurück. Sie müssen diese Parameter folgendermaßen deklarieren und initialisieren:

  //Datenbankmethode On Mobile App Authentication
 C_OBJECT($0;$1)
  // ...Code für die Methode
 $0:=Neues Objekt //vergessen Sie nicht, das Objekt zum Zurückgeben zu erstellen

Der Objekt Parameter $1 empfängt folgende Eigenschaften:

EigenschaftennameTypBeschreibung
emailTextE-Mail des Benutzers. Nicht zwingend, kann für Zugriff als Gast leer bleiben
applicationObjektInformation über die mobile Anwendung
idTextID der mobilen Anwendung
nameTextName der mobilen Anwendung
versionTextVersion der mobilen Anwendung
deviceObjectInformation über das mobile Gerät (in der Regel ein Mobil Phone)
idTextGenerierte einmalige Geräte ID
versionTextSystemversion des Geräts
descriptionTextBeschreibung des Geräts
simulatorBooleanWahr, wenn das Gerät ein Simulator ist
teamObjectAngaben zum Apple Developer Team
idTextTeam ID (damit können Entwickler die Funktionalität Build and Run des Xcode Projekts verwenden)
languageObjektSpracheinstellungen des Benutzergeräts
idTextAktuelle Sprach-ID des Benutzergeräts, z.B.: en_US
regionTextAktuelle Region des  Benutzergeräts, z.B.: US
codeTextAktuelle Sprache des Benutzergeräts, z.B.: en
parametersObjektZusätzliche Information, welche die mobile app für die individuelle Verwendung hinzufügen kann
sessionObjektAngaben zur Session
idTextSession UUID, die für diese Authentifizierung erstellt wurde. Lässt sich für die zukünftige Verwendung abspeichern
ipTextIP Adresse des Client

Nach Abarbeiten der Informationen gibt die Datenbankmethode in $0 ein Objekt mit folgenden Eigenschaften zurück:

Name der EigenschaftTypBeschreibung
userInfoObjectUser-Werte zum Filtern von Abfragen.
successBooleanWahr bei erfolgreicher Authentifizierung, sonst Falsch. Bei success=False wird die Verbindung abgewiesen.
statusTextText(Optional) Meldung zum Anzeigen der mobilen Anwendung. Bei success=true erscheint eine Willkommensmeldung; Bei success=false kann der Benutzer eine Erklärung erhalten.

Die Verbindung wird automatisch verweigert, wenn:

  • in $0 kein Wert gesetzt oder $0 nicht definiert ist
  • in $0 ein ungültiger Wert gesetzt ist
  • Die Datenbankmethode On Mobile App Authentication nicht in der Anwendung definiert ist

Die Verbindung wird automatisch akzeptiert, wenn sie von "localhost" kommt, da dies als eine Testverbindung des Entwicklers gewertet wird.

Im allgemeinen erfolgt die Authentifizierung einer Verbindungsanfrage von einer mobilen Anwendung über die angegebene E-Mail. Wollen Sie z.B. den Zugriff nur für Verbindungen von E-Mails des Domains 4d.com zulassen, schreiben Sie in der Datenbankmethode On Mobile App Authentication:

 If($1.email="@"+Char(At sign)+"4d.com")
    $0.success:=True
 End if

Sie können den User Agent auch über die Angaben application.id, device.id und team.id im Objekt $1 identifizieren und bestimmen, ob der Zugriff erlaubt oder verweigert wird.

Wurde die mobile Anwendung ohne Markieren der Option "Requires an email to connect" erstellt, ist die Anwendung im "guest mode". Dann wird der String $1.email leer zurückgegeben. In diesem Fall können Sie:

  • Zugriff für Gäste erlauben, indem Sie Wahr in $0.success zurückgeben,
  • Den Gastzugriff über die Angaben des User Agent identifizieren und bewerten, und außerdem bestimmen, ob der Zugriff erlaubt oder verweigert wird.
  • Zugriff für Gäste verweigern, indem Sie Falsch in $0.success zurückgeben, beispielsweise, wenn der Server im Wartungsmodus ist. Dann erscheint auf der mobilen app eine Fehlermeldung, wenn der Benutzer auf die Schaltfläche Reload klickt.

Hier ein Beispiel als Vorlage für eine Datenbankmethode On Mobile App Authentication:

  //Datenbankmethode 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 //Von der mobilen Anwendung gelieferte Information
 $Obj_response:=New object //In $0 nach der Bearbeitung zurückgeben
 
  //E-Mail des Benutzers erhalten
 $Txt_email:=String($Obj_request.email)
 
 If(Length($Txt_email)=0) //es wurde keine E-Mail übergeben
  // Gastmodus - Verbindung erlauben oder verweigern
    $Obj_response.success:=True
  // $Obj_response.success:=False, um keinen Gastzugriff zu erlauben
 
  // Optionale Willkommensmeldung zur Anzeige auf der mobilen App.
    $Obj_response.statusText:="Willkommen in meiner Anwendung"
 
 Else
  // Authentifizierter Modus -  Verbindung erlauben oder nicht
    If(Is compiled mode// Deployment Version
 
  //Als Beispiel E-Mails vom Domain 4D.com erlauben
       $Obj_response.success:=($Obj_request.email=("@"+Char(At sign)+"4d.com"))
 
    Else //Development Version
 
  //Für Testzwecke alle Adressen zulassen
       $Obj_response.success:=True
 
    End if
 
    If($Obj_response.success)
 
  //Optionale Willkommensmeldung zur Anzeige auf der mobilen App.
       $Obj_response.statusText:="Authentifizierung erfolgreich"
 
    Else
 
       $Obj_response.statusText:=$Obj_request.email+" ist keine authorisierte E-Mail Adresse."
 
    End if
 End if
 
  // Angaben zur App erhalten, wenn die Identifizierung erforderlich ist (optional)
 If($Obj_request.application#Null)
    $Txt_appID:=$Obj_request.application.id // App ID
    $Txt_appName:=$Obj_request.application.name //App Name
    $Txt_appVersion:=$Obj_request.application.version // App Version
 End if
 
  //Angaben zum Gerät erhalten, wenn die Identifizierung erforderlich ist (optional)
 If($Obj_request.device#Null)
    $Txt_device:=$Obj_request.device.description //Beschreibung des Geräts
    $Txt_deviceID:=$Obj_request.device.id //Geräte ID
    $Txt_osVersion:=$Obj_request.device.version //Version des Systems
    $Boo_simulator:=$Obj_request.device.simulator //Wahr, wenn das Gerät ein Simulator ist
 End if
 
  //Angaben zum Team erhalten, falls erforderlich (optional)
 If($Obj_request.team#Null)
    $Txt_teamID:=$Obj_request.team.id //Team ID
 End if
 
  //Angaben zur Benutzersprache erhalten (optional)
 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
 
  //Angaben zur Session erhalten
 If($Obj_request.session#Null)
  //Lässt sich für die zukünftige Verwendung abspeichern.
    $Txt_sessionId:=$Obj_request.session.id //für diese Authentifizierung erstellte UUID
    $Txt_IP:=$Obj_request.session.ip //IP Adresse
 End if
 
  //Die Parameter der App erhalten
 If($Obj_request.parameters#Null)
  //Zusätzliche Information, die von der mobilen app zur individuellen Verwendung hinzugefügt werden kann (C_OBJECT)
 End if
 
 $0:=$Obj_response



Siehe auch 

4D for iOS Documentation
Datenbankmethode On Mobile App Action
MOBILE APP REFRESH SESSIONS

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datenbankmethoden

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v17 R2

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)