| 4D v18On Mobile App Authentication database method | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 On Mobile App Authentication database method 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| $1 -> On Mobile App Authentication database method -> Résultat | ||||||||
| Paramètre | Type | Description | ||||||
| $1 | Objet |   | Informations transmises par l'application mobile | |||||
| Résultat | Objet |   | Statut d'authentification | |||||
La méthode base On Mobile App Authentication database method est chargée de gérer l'authentification des applications mobiles sur 4D Server ou 4D Developer. Elle est automatiquement appelée par 4D lorsqu'un User-agent envoie une demande de connexion à 4D Server ou 4D Developer pour la première fois.
Note : Un User-agent est défini par un ID d'application (ID Application), un ID de périphérique (ID Device), et un ID d'équipe (ID Team). Ces identifiants sont transmis à la méthode base On Mobile App Authentication database method (voir ci-dessous).
La On Mobile App Authentication database method est toujours appelée lors de la première connexion, même si l'application mobile a été créée en mode invité.
La méthode reçoit toutes les informations nécessaires de l'application mobile dans le paramètre $1 (objet), et doit renvoyer un statut d'authentification dans le paramètre $0 (objet). Vous devez déclarer et initialiser ces paramètres comme suit :
  //Méthode base Sur authentification app mobile
 C_OBJECT($0;$1)
  // ...Code à retourner
 $0:=New object //n'oubliez pas de créer l'objet à retournerLes propriétés ci-dessous sont reçues dans le paramètre objet $1 :
| Nom de la propriété | Type | Description | |
| Texte | Email de l'utilisateur. Non-obligatoire, peut être vide pour un accès invité | ||
| application | Objet | Informations à propos de l'application mobile | |
| id | Texte | ID de l'application mobile | |
| name | Texte | Nom de l'application mobile | |
| version | Texte | Version de l'application mobile | |
| device | Objet | Informations sur l'appareil mobile (habituellement, un téléphone mobile) | |
| id | Texte | ID généré, identifiant unique de l'appareil | |
| version | Texte | Version système de l'appareil | |
| description | Texte | Description de l'appareil | |
| simulator | Booléen | True si l'appareil est un simulateur | |
| team | Objet | Informations sur l'Apple Developer Team | |
| id | Texte | Team id (permet aux développeurs d'utiliser le Xcode project Build et d'exécuter les fonctionnalités) | |
| language | Objet | Paramètres de language de l'appareil de l'utilisateur | |
| id | Texte | ID du langage courant de l'appareil de l'utilisateur, ex: en_US | |
| region | Texte | Région courant de l'appareil de l'utilisateur, ex: US | |
| code | Texte | Langage courant de l'appareil de l'utilisateur, ex: en | |
| parameters | Objet | Toute information supplémentaire pouvant être ajoutée par l'application mobile pour une utilisation personnalisée | |
| session | Objet | Informations sur la session | |
| id | Texte | UUID de session créée pour cette authentification. Peut être stocké pour une utilisation ultérieure. | |
| ip | Texte | Adresse IP cliente | 
Après avoir traité les informations, la méthode base doit renvoyer un objet avec les propriétés suivantes dans $0:
| Nom de la propriété | Type | Description | 
| success | Booléen | Vrai si l'authentification s'est déroulée avec succès, Faux sinon. Si success=Faux, la connexion est refusée. | 
| statusText | Texte | (Optionnel) Message à afficher sur l'application mobile. Si success=Vrai, message de bienvenue ; si success=faux, peut être utilisé pour fournir une explication à l'utilisateur | 
La connexion est automatiquement rejetée si :
La connexion est automatiquement acceptée si elle provient de "localhost" car elle est considérée comme une connexion de test de développeur.
L'authentification d'une demande de connexion à une application mobile est basée principalement sur l'email fourni. Par exemple, si vous souhaitez accorder l'accès uniquement aux connexions à partir d'emails du domaine 4D.com, vous pouvez écrire dans la On Mobile App Authentication database method :
 If($1.email="@"+Char(arobas)+"4d.com")
    $0.success:=True
 End ifVous pouvez également identifier le User-agent à l'aide de application.id, device.id, et team.id de l'objet $1, et décider d'autoriser ou de refuser l'accès.
Si l'application mobile a été créée avec l'option "Nécessite un email pour se connecter" décochée, il s'agit d'une application en "mode invité". La chaîne $1.email sera alors fournie vide. Dans ce cas vous pouvez :
Voici en exemple, un modèle de On Mobile App Authentication database method :
  // Méthode base Sur authentification app mobile
 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 //Informations fournies par l'application mobile
 $Obj_response:=New object //A retourner dans $0 après traitement
 
  //Obtenir l'email utilisateur
 $Txt_email:=String($Obj_request.email)
 
 If(Length($Txt_email)=0) //aucun email n'a été fourni
  // Mode invité - autoriser ou refuser la connexion
    $Obj_response.success:=True
  // $Obj_response.success:=Faux //si vous voulez refuser l'accès invité
 
  // Message de bienvenue facultatif à afficher sur l'application mobile
    $Obj_response.statusText:="Welcome to my application"
 
 Else
  // Mode authentifié -  Autoriser ou non la connexion
    If(Is compiled mode) // Version de déploiement
  //Autoriser par exemple les emails du domaine 4D.com
       $Obj_response.success:=($Obj_request.email=("@"+Char(At sign)+"4d.com"))
 
    Else //Version de développement
 
       /Autoriser toutes les adresses à des fins de test
       $Obj_response.success:=True
 
    End if
 
    If($Obj_response.success)
 
  //Message de bienvenue facultatif à afficher sur l'application mobile
       $Obj_response.statusText:="Authentication successful"
 
    Else
 
       $Obj_response.statusText:=$Obj_request.email+" is not an authorized email address."
 
    End if
 End if
 
  // Obtenir des informations sur l'application si une identification est nécessaire (facultatif)
 If($Obj_request.application#Null)
    $Txt_appID:=$Obj_request.application.id // Id de l'application
    $Txt_appName:=$Obj_request.application.name //Nom de l'application
    $Txt_appVersion:=$Obj_request.application.version // Version de l'application
 
  //Obtenir des informations sur le périphérique si une identification est nécessaire (facultatif)
    If($Obj_request.device#Null)
       $Txt_device:=$Obj_request.device.description // Description du périphérique
       $Txt_deviceID:=$Obj_request.device.id // Id du périphérique
       $Txt_osVersion:=$Obj_request.device.version // Version Système
       $Boo_simulator:=$Obj_request.device.simulator //True si le périphérique est un simulateur
    End if
 
  //Obtenir les informations de l'équipe si nécessaire (facultatif)
    If($Obj_request.team#Null)
       $Txt_teamID:=$Obj_request.team.id //Id de l'équipe
    End if
 
  //Obtenir les informations sur la langue de l'utilisateur (facultatif)
    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
 
  //Obtenir les informations de session
    If($Obj_request.session#Null)
  //Pourrait être stocké pour une utilisation future
       $Txt_sessionId:=$Obj_request.session.id //UUID créé pour cette authentification
       $Txt_IP:=$Obj_request.session.ip // Adresse IP
    End if
 
  //Obtenir les paramètres de l'application
    If($Obj_request.parameters#Null)
  //Toute information supplémentaire pouvant être ajoutée par une application mobile pour une utilisation personnalisée (C_OBJET)
    End if
 
    $0:=$Obj_response
									
									
									MOBILE APP REFRESH SESSIONS
									
									On Mobile App Action database method
									
	Produit :  4D
	Thème :  Méthodes base
	
        
        
	
	Créé :  4D v17 R2
	
	
	
	
	
	4D - Langage ( 4D v18)
	
	
	
 Ajouter un commentaire
Ajouter un commentaire