| 4D v18Datenbankmethode On Mobile App Authentication | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 Datenbankmethode On Mobile App Authentication 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| $1 -> Datenbankmethode On Mobile App Authentication -> Funktionsergebnis | ||||||||
| Parameter | Typ | Beschreibung | ||||||
| $1 | Objekt |   | Von der mobilen Anwendung übergebene Informationen | |||||
| Funktionsergebnis | Objekt |   | 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 erstellenDer Objekt Parameter $1 empfängt folgende Eigenschaften:
| Eigenschaftenname | Typ | Beschreibung | |
| Text | E-Mail des Benutzers. Nicht zwingend, kann für Zugriff als Gast leer bleiben | ||
| application | Objekt | Information über die mobile Anwendung | |
| id | Text | ID der mobilen Anwendung | |
| name | Text | Name der mobilen Anwendung | |
| version | Text | Version der mobilen Anwendung | |
| device | Object | Information über das mobile Gerät (in der Regel ein Mobil Phone) | |
| id | Text | Generierte einmalige Geräte ID | |
| version | Text | Systemversion des Geräts | |
| description | Text | Beschreibung des Geräts | |
| simulator | Boolean | Wahr, wenn das Gerät ein Simulator ist | |
| team | Object | Angaben zum Apple Developer Team | |
| id | Text | Team ID (damit können Entwickler die Funktionalität Build and Run des Xcode Projekts verwenden) | |
| language | Objekt | Spracheinstellungen des Benutzergeräts | |
| id | Text | Aktuelle Sprach-ID des Benutzergeräts, z.B.: en_US | |
| region | Text | Aktuelle Region des Benutzergeräts, z.B.: US | |
| code | Text | Aktuelle Sprache des Benutzergeräts, z.B.: en | |
| parameters | Objekt | Zusätzliche Information, welche die mobile app für die individuelle Verwendung hinzufügen kann | |
| session | Objekt | Angaben zur Session | |
| id | Text | Session UUID, die für diese Authentifizierung erstellt wurde. Lässt sich für die zukünftige Verwendung abspeichern | |
| ip | Text | IP Adresse des Client | 
Nach Abarbeiten der Informationen gibt die Datenbankmethode in $0 ein Objekt mit folgenden Eigenschaften zurück:
| Name der Eigenschaft | Typ | Beschreibung | 
| success | Boolean | Wahr bei erfolgreicher Authentifizierung, sonst Falsch. Bei success=False wird die Verbindung abgewiesen. | 
| statusText | Text | (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:
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 ifSie 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:
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
									
									
									Datenbankmethode On Mobile App Action
									
									MOBILE APP REFRESH SESSIONS
									
	Produkt: 4D
	Thema: Datenbankmethoden
	
        
        
	
	Erstellt: 4D v17 R2
	
	
	
	
	
	4D Programmiersprache ( 4D v18)
	
	
	
 Fehler melden
Fehler melden