Autologin

All contributions published for previous SPIP versions

Module d’authentification permettant une connexion automatique sans passer par la phase de login.

Il arrive souvent, quand on est webmestre ou rédacteur régulier d’un site sous spip, d’aller et revenir sur le site pour corriger ou commenter un article. Au bout d’un moment, la saisie de l’identifiant et du mot de passe deviennent un geste plutôt rebarbatif (allez ! avouez ! ;) ).

Avertissement

Ce système ouvre une faille de sécurité :

Si quelqu’un utilise ma machine, il peut se connecter à ma place.

Principe

Simple comme bonjour, ou presque, il suffit de rallonger la durée de vie du cookie de session, sur demande de l’utilisateur.

Mise en place

Liste des fichiers à modifier :

-  ecrire/mes_options.php3 [1] : Ajout d’une variable globale permettant d’autoriser l’autologin.

<?php
...
$GLOBALS['autologin'] = true;
...
?>

Ainsi, le webmaster peut désactiver temporairement l’autologin en supprimant la variable globale ’autologin’ ou en lui attribuant la valeur ’false’

-  inc-login.php3 : Ajout d’une case à cocher ’Se souvenir du mot de passe’. Insérer le code suivant :

...
echo "<input type='hidden' name='next_session_password_md5' value=''>\n";
if ($GLOBALS['autologin']) echo "<label><b>Se souvenir de votre mot de passe</b> :</label><input type='checkbox' name='memorise_login' />\n";
echo "<div align='right'><input type='submit' class='spip_bouton' name='submit' value='Valider'></div>\n";
...

-  spip_cookie.php3 : Rallongement de la durée de vie du cookie de session. Remplacer les lignes contenant :

spip_setcookie('spip_session', $cookie_session); par

$duree_autologin = $memorise_login == 'on' AND $GLOBALS['autologin'] ? time() + 3600 * 24 * 14 : "";
spip_setcookie('spip_session', $cookie_session, $duree_autologin);

et :

spip_setcookie('spip_session', $cookie); par

$duree_autologin = $memorise_login == 'on' AND $GLOBALS['autologin'] ? time() + 3600 * 24 * 14 : "";
spip_setcookie('spip_session', $cookie, $duree_autologin);

à noter que la durée proposée est de 14 jours. On peut souhaiter raccourcir ou rallonger cette durée en remplaçant la valeur 14 par une autre...

à partir de la version 1.6, il faut aussi ajouter une ligne dans le fichier de langue. Exemple :

Dans ecrire/lang/spip-fr.php3 [2] :

'pass_se_souvenir' => 'Se souvenir de votre mot de passe',

et dans ce cas, on remplacera dans le fichier inc-login.php3 la ligne :

if ($GLOBALS['autologin']) echo "<label><b>Se souvenir de votre mot de passe</b> :</label><input type='checkbox' name='memorise_login' />\n";

par la ligne :

if ($GLOBALS['autologin']) echo "<label><b>"._T('pass_se_souvenir')."</b> :</label><input type='checkbox' name='memorise_login' />\n";

Usage

Lors d’une demande de login, l’utilisateur aura la possibilité de demander au système de se souvenir du mot de passe.

-  S’il coche la case, sa session persistera pour la durée définie.
-  S’il ne coche pas la case ou qu’il fait un ’logout’, le cookie de session sera détruit et il devra s’authentifier de nouveau à l’avenir.

Footnotes

[1Dans les versions antérieures à SPIP1.5.2, ce fichier n’est pas pris en charge : insérez cette ligne dans le fichier ecrire/inc_version.php3.

[2Je mets cette ligne sous celle commençant par 'pass_vousinscrire' =>...

updated on 24 September 2004

Discussion

Une discussion

  • 3

    Je veux voir si je peux utiliser le nom de James qui à priori est déjà réservé .... pour publier cette réponse meme si je me doute qu’il y aura modération par derrière... Question de sécurité sur l’usurpation d’identité quoi ....

    • Faux James

      Bah c’est pas terrible la sécurité... Je peux me faire passer pour Bionet .... Je trouve cela gênant... Ne serait il pas possible de prévoiir un système d’authentification comme dans PhpBB par exemple ?

    • Le “Vrai” James

      Ce n’est pas un site de test ici !!! ;-)

      Pour l’authentification, il faut paramétrer les forums spip avec l’option ’sur abonnement’

    • Hello, all,

      I am locked off to our site, since the GDzip is forced to every page, whenever I clicked the ecrire,it starts to download the spip_login.php3 file. The site can be viewed but I can not manage it now.I have asked for help in the English mailing list but can not solve it. If any French freinds can tell me how to ,please let me know. I realy love this script.

      Thanks in advnce.

      Hans Cheng

      The site is at:

      http://help.haz.dk

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom