Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
Méthode base Sur authentification app mobile
|
$1 -> Méthode base Sur authentification app mobile -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
$1 | Objet |
![]() |
Informations transmises par l'application mobile | |||||
Résultat | Objet |
![]() |
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é | 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 |
userInfo | Objet | Valeurs de l'utilisateur à saisir pour filtrer la requête. |
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 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 :
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
4D for iOS Documentation
Méthode base Sur action app mobile
MOBILE APP ACTUALISER SESSIONS
Produit : 4D
Thème : Méthodes base
Nom intl. : On Mobile App Authentication database method
Créé : 4D v17 R2
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)