Autologin

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

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.

Notes

[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' =>...

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

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom