4D v16.3Gestion des sessions Web |
||
|
4D v16.3
Gestion des sessions Web
Gestion des sessions Web
Le serveur Web de 4D propose un mécanisme simple et complet de gestion des sessions utilisateur. Ce mécanisme automatique permet à des clients Web de réutiliser le même contexte (sélections et instances de variables) lors de requêtes successives. Ce principe est basé sur l’utilisation d’un cookie privé posé par 4D lui-même : "4DSID". À chaque requête d’un client Web, 4D contrôle la présence et la valeur du cookie 4DSID :
Le mécanisme de gestion des sessions doit être activé sur votre serveur Web 4D pour que vous puissiez en bénéficier dans votre application. Par défaut, ce mécanisme est activé dans les bases de données créées avec 4D v13 et suivantes. En revanche, pour des raisons de compatibilité, il est inactivé dans les bases de données converties depuis une version précédente de 4D. Vous devez l’activer explicitement pour pouvoir bénéficier de cette nouvelle fonctionnalité. Vous pouvez gérer l’activation de la gestion automatique des sessions de deux manières :
Dans les deux cas, le paramétrage est local au poste ; il peut donc différer entre le serveur Web de 4D Server et des serveurs Web 4D distants. La durée de vie du cookie en cas d’inactivité est de 8 heures par défaut (480 minutes) et est modifiable l’aide de la commande WEB FIXER OPTION. Il est possible de définir une durée de vie différente pour les cookies (option Web timeout session) et pour les process associés aux sessions sur le serveur (option Web timeout process) : vous pouvez souhaiter par exemple qu’un "panier" reste valide pendant 24 heures mais, pour des raisons d’optimisation, vous ne voulez pas maintenir de process aussi longtemps. Dans ce cas, vous pouvez fixer une durée de vie du process de 4 heures par exemple. A l’issue de ce délai, la Méthode base Sur fermeture process Web est appelée, vous permettant de stocker les variables et les sélections liées à la session, puis le process est tué. A la prochaine connexion du client Web (jusqu’à 24 heures plus tard), le cookie est renvoyé au serveur et vous pourrez recharger les informations de la session dans la Méthode base Sur connexion Web (cf. exemple ci-dessous). Si nécessaire, vous pouvez forcer à tout moment l'expiration du cookie et donc clore la session à l'aide de la commande WEB FERMER SESSION. 4D détruit automatiquement les plus anciens contextes inactifs lorsque le nombre maximum de contextes conservés est atteint (ce nombre de 100 par défaut peut être modifié à l’aide de la commande WEB FIXER OPTION). Cet exemple illustre la simplicité de mise en oeuvre des sessions via les méthodes base Sur connexion Web et Sur fermeture session Web. Voici le code de la Méthode base Sur connexion Web : // Sur connexion Web (ou Sur authentification Web) Voici le code de la Méthode base Sur fermeture process Web : // Sur fermeture session Web Le mécanisme de gestion des sessions étant basé sur l’utilisation de cookies, il ne sera pas possible au serveur HTTP de 4D de maintenir une session si le client Web rejette les cookies. Dans ce cas, chaque requête sera traitée comme une nouvelle connexion et provoquera l’exécution de la méthode Compiler_Web. Il est possible de vérifier que le client Web prend en charge les cookies à l’aide de la commande WEB LIRE ENTETE HTTP. Le serveur HTTP de 4D enregistre l’IP qui a débuté une session. Si un client Web situé à une adresse IP différente tente d’accéder à une session existante, l’erreur HTTP 400 est retournée au client.
Voir aussi
Méthode base Sur fermeture process Web
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
UTILISATION DE L'ARTICLE
4D - Langage ( 4D v16) |