Tags:
create new tag
, view all tags

Widget login

Description

Le widget login a pour rôle de s'intégrer à une page web afin d'apporter les fonctionnalités du système de login du CDS : connection, création de compte, visualisation/modification des préférences, ...etc. Il fournit donc à la fois une interface graphique prête à l'emploi, mais aussi une API permettant au développeur d'interagir plus finement avec le système de login, selon ses besoins.

Spécifications techniques

Le widget login est une classe javascript, et doit donc pouvoir être intégré facilement à une page web existante, en instanciant cette classe. Il utilise l'environnement javascript dojo, ce dernier doit donc être installé pour que cela fonctionne.

Interface graphique

Apparence du widget

  • En mode connecté :

captureWL1.png

  • En mode déconnecté :

captureWL2.png

Création de compte

captureWL3.png

A noter que les erreurs sont détectées à la volée pendant que l'utilisateur renseigne les différents champs.

Connexion

captureWL4.png

Plusieurs fonctionnalités :

  • Enregistrement du nom d'utilisateur et du mot de passe pour ne pas avoir besoin de le retaper à chaque fois
  • Connexion permanente pour rester connecté même si la session a expiré
  • Possibilité d'obtenir un nouveau mot de passe en cas d'oubli

Visualisation/modification des préférences

captureWL5.png

Les préférences sont réparties en plusieurs onglets, un par catégorie (général, portail et annotations).

API

Instanciation du widget

La première chose à faire pour intégrer le widget dans une page web est d'instancier ce dernier. Voici le prototype du constructeur de la classe :

LoginWidget(divId, onLogin, onLoginFail, loginServerUrl, mode) avec :

  • divId : identifiant de l'élément html dans lequel le widget devra apparaitre
  • onLogin : une fonction qui sera appelée en cas de connexion réussie de l'utilisateur
  • onLoginFail : une fonction qui sera appelée en cas de connexion ratée de l'utilisateur
  • loginServerUrl : l'URL du serveur de login du CDS
  • mode : "normal" pour que le widget s'affiche dans son mode normal, ou "simpleLink" pour que le widget s'affiche en mode restreint

Exemple : var myloginWidget = new LoginWidget("loginDiv", onLogin, onLoginFail, "http://cdsportal.u-strasbg.fr/CDSLogin", "normal");

Initialisation

Une fois le widget instancié, il faut l'initialiser. Cela se fait via la méthode "start", qui a comme prototype :

start(callbackFunction) avec :

  • callbackFunction : fonction appelée un fois l'initialisation effectuée

La fonction de callback devra avoir comme prototype :

callback(sessionId, isUserAnonyme) avec :

  • sessionId : identifiant de la session courante
  • isUserAnonyme : true si la session courante correspond à un utilisateur anonyme, false sinon

Données et préférences

Il est possible de récupérer les données de l'utilisateur correspondant à la session courante. Cela se fait grâce à la méthode suivante :

data(callbackFunction) avec :

  • callbackFunction : fonction appelée une fois les données récupérées

La fonction de callback devra avoir comme prototype :

callback(dataMap) avec :

  • dataMap : tableau associatif contenant les données de l'utilisateur

Il est également possible de récupérer les préférences de l'utilisateur correspondant à la session courante. Cela se fait grâce à la méthode suivante :

preferences(callbackFunction) avec :

  • callbackFunction : function appelée une fois les préférences récupérées

La fonction de callback devra avoir comme prototype :

callback(preferencesMap) avec :

  • preferencesMap : tableau associatif contenant les préférences de l'utilisateur

Téléchargement

Package prêt à l'emploi : CDSLoginWidget.tar.gz

-- BriceGassmann - 14 Jun 2010

Topic attachments
I Attachment Action Size Date Who Comment
Unknown file formatgz CDSLoginWidget.tar.gz manage 2537.7 K 2010-06-14 - 14:59 UnknownUser  
Topic revision: r2 - 2011-06-08 - GregoryMantelet
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback