Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v19.8
On Mobile App Authentication database method

On Mobile App Authentication database method 


 

$1 -> On Mobile App Authentication database method -> Résultat 
Paramètre Type   Description
$1  Objet in Informations transmises par l'application mobile
Résultat  Objet in 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 à retourner

Les propriétés ci-dessous sont reçues dans le paramètre objet $1 :

Nom de la propriétéTypeDescription
emailTexteEmail de l'utilisateur. Non-obligatoire, peut être vide pour un accès invité
applicationObjetInformations à propos de l'application mobile
idTexteID de l'application mobile
nameTexteNom de l'application mobile
versionTexteVersion de l'application mobile
deviceObjetInformations sur l'appareil mobile (habituellement, un téléphone mobile)
idTexteID généré, identifiant unique de l'appareil
versionTexteVersion système de l'appareil
descriptionTexteDescription de l'appareil
simulatorBooléenTrue si l'appareil est un simulateur
teamObjetInformations sur l'Apple Developer Team
idTexteTeam id (permet aux développeurs d'utiliser le Xcode project Build et d'exécuter les fonctionnalités)
languageObjetParamètres de language de l'appareil de l'utilisateur
idTexteID du langage courant de l'appareil de l'utilisateur, ex: en_US
regionTexteRégion courant de l'appareil de l'utilisateur, ex: US
codeTexteLangage courant de l'appareil de l'utilisateur, ex: en
parametersObjetToute information supplémentaire pouvant être ajoutée par l'application mobile pour une utilisation personnalisée
sessionObjetInformations sur la session
idTexteUUID de session créée pour cette authentification. Peut être stocké pour une utilisation ultérieure.
ipTexteAdresse 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éTypeDescription
userInfoObjetValeurs de l'utilisateur à saisir pour filtrer la requête.
successBooléenVrai si l'authentification s'est déroulée avec succès, Faux sinon. Si success=Faux, la connexion est refusée.
statusTextTexte(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 :

  • aucune valeur n'est définie pour $0 ou $0 n'est pas défini,
  • une valeur invalide est définie pour $0,
  • la On Mobile App Authentication database method n'est pas définie dans l'application.

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 if

Vous 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 :

  • autoriser l'accès aux invités en renvoyant Vrai dans $0.success,
  • identifier et évaluer l'accès aux invités à l'aide des informations du User-agent, puis décider d'autoriser ou de refuser l'accès.
  • refuse l'accès aux invités en renvoyant Faux dans $0.success. Cela peut être fait par exemple si le serveur est en mode maintenance. Une erreur sera affichée sur l'application mobile si l'utilisateur clique sur le bouton Reload.

Exemple  

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:=Créer objet //A retourner dans $0 après traitement
 
  //Obtenir l'email utilisateur
 $Txt_email:=Chaîne($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(Mode compilé) // Version de déploiement
  //Autoriser par exemple les emails du domaine 4D.com
       $Obj_response.success:=($Obj_request.email=("@"+caractère(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



Voir aussi  

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

 
PROPRIÉTÉS 

Produit : 4D
Thème : Méthodes base

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v17 R2

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)