Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
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 erstellen
Der 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 |
userInfo | Object | User-Werte zum Filtern von Abfragen. |
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 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:
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
4D for iOS Documentation
Datenbankmethode On Mobile App Action
MOBILE APP REFRESH SESSIONS
Produkt: 4D
Thema: Datenbankmethoden
Erstellt: 4D v17 R2
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)