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
Méthode base Sur authentification app mobile

Méthode base Sur authentification app mobile 


 

$1 -> Méthode base Sur authentification app mobile -> 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 Méthode base Sur authentification app mobile 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 Méthode base Sur authentification app mobile (voir ci-dessous).

La Méthode base Sur authentification app mobile 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_OBJET($0;$1)
  // ...Code à retourner
 $0:=Creer objet //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 Méthode base Sur authentification app mobile 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 Méthode base Sur authentification app mobile :

 Si($1.email="@"+Caractere(arobas)+"4d.com")
    $0.success:=Vrai
 Fin de si

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 Méthode base Sur authentification app mobile :

  // Méthode base Sur authentification app mobile
 C_OBJET($0)
 C_OBJET($1)
 
 C_BOOLEEN($Boo_simulator)
 C_TEXTE($Txt_appID;$Txt_appName;$Txt_appVersion;$Txt_device;$Txt_deviceID;$Txt_email)
 C_TEXTE($Txt_IP;$Txt_languageCode;$Txt_languageId;$Txt_languageRegion;$Txt_osVersion;$Txt_sessionId)
 C_TEXTE($Txt_teamID)
 C_OBJET($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)
 
 Si(Longueur($Txt_email)=0) //aucun email n'a été fourni
  // Mode invité - autoriser ou refuser la connexion
    $Obj_response.success:=Vrai
  // $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"
 
 Sinon
  // Mode authentifié -  Autoriser ou non la connexion
    Si(Mode compilé) // Version de déploiement
  //Autoriser par exemple les emails du domaine 4D.com
       $Obj_response.success:=($Obj_request.email=("@"+caractère(Arobase)+"4d.com"))
 
    Sinon //Version de développement
 
  //Autoriser toutes les adresses à des fins de test
       $Obj_response.success:=Vrai
 
    Fin de si
 
    Si($Obj_response.success)
 
  //Message de bienvenue facultatif à afficher sur l'application mobile
       $Obj_response.statusText:="Authentication successful"
 
    Sinon
 
       $Obj_response.statusText:=$Obj_request.email+" is not an authorized email address."
 
    Fin de si
 Fin de si
 
  // Obtenir des informations sur l'application si une identification est nécessaire (facultatif)
 Si($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)
    Si($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
    Fin de si
 
  //Obtenir les informations de l'équipe si nécessaire (facultatif)
    Si($Obj_request.team#Null)
       $Txt_teamID:=$Obj_request.team.id //Id de l'équipe
    Fin de si
 
  //Obtenir les informations sur la langue de l'utilisateur (facultatif)
    Si($Obj_request.language#Null)
       $Txt_languageCode:=$Obj_request.language.Code
       $Txt_languageId:=$Obj_request.language.id
       $Txt_languageRegion:=$Obj_request.language.region
    Fin de si
 
  //Obtenir les informations de session
    Si($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
    Fin de si
 
  //Obtenir les paramètres de l'application
    Si($Obj_request.parameters#Null)
  //Toute information supplémentaire pouvant être ajoutée par une application mobile pour une utilisation personnalisée (C_OBJET)
    Fin de si
 
    $0:=$Obj_response



Voir aussi  

4D for iOS Documentation
Méthode base Sur action app mobile
MOBILE APP ACTUALISER SESSIONS

 
PROPRIÉTÉS 

Produit : 4D
Thème : Méthodes base
Nom intl. : On Mobile App Authentication database method

 
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)