Page 1 sur 1

Login : Case à cocher "rester connecté"

Posté : 27 mai 2015, 22:19
par stephweb
Bonjour,
je souhaiterai un peut d'aide SVP, car je galère vraiment à faire un truc.

Bon but, pour un admin, est de laisser la possibilité aux utilisateurs de cocher "rester connecté" lors du login.

Quelle est la meilleur solution ? et surtout la + sécurisée?
Les session? les cookies?

J'ai fait pleins de recherches dans google, je comprend pas grand chose à ce sujet.

Merci beaucoup.

Re: Login : Case à cocher "rester connecté"

Posté : 27 mai 2015, 22:58
par Ryle
Hello !

La solution est effectivement le cookie. C'est la seule information qui est conservée entre deux connexions (sur le poste de l'utilisateur) et qui te permettra de le reconnaître, même si sa session est expirée :)

Quand à la question de sécurité, tout dépend de ce que tu mettras dans le cookie. Évite par exemple d'y mettre juste l'id de l'utilisateur (qu'il suffirait de modifier pour usurper le compte de quelqu'un d'autre) ou le mot de passe en clair (on ne sait pas qui a accès aux cookies sur le poste de l'utilisateur) ...

Re: Login : Case à cocher "rester connecté"

Posté : 28 mai 2015, 09:34
par stephweb
OK merci.
Pour le moment j'ai seulement ceci:
Login:

Code : Tout sélectionner

// se souvenir de moi avec les cookies - case à cocher if(isset($_POST['remember'])) { setcookie("cookname", sha1($_SESSION['Auth']['pseudo'] . uniqid() . $_SERVER['REMOTE_ADDR']), time() + 3600 * 24 * 3, "/", '', false, true); }
Logout:

Code : Tout sélectionner

// supprimer cookies setcookie("cookname", sha1($_SESSION['Auth']['pseudo'] . uniqid() . $_SERVER['REMOTE_ADDR']), time() - 3600 * 24 * 3, "/", '', false, true); unset($_COOKIE['cookname']);
ça fonctionne, mais on ma dit (sans trop m'expliquer pourquoi) que ce n'est pas très sécurisé.
Comment faut-il faire pour que ce soit vraiment sécurisé?

Merci beaucoup

Re: Login : Case à cocher "rester connecté"

Posté : 28 mai 2015, 10:20
par @rthur
Bonjour,

Si on veut faire encore mieux, il faudrait juste remplacer uniqid() par openssl_random_pseudo_bytes()