J'essaie de comprendre comment WordPress détermine où un utilisateur est connecté ou non? J'ai lu que c'est fait en utilisant seulement les cookies; mais avec WordPress 4, il y a un nouvel ajout: wp_session_tokens
. J'ai essayé de lire le codex et de chercher sur Internet, mais il n'y a pas beaucoup d'informations utiles.
Des questions:
Quelle est l'utilisation typique de wp_session_tokens
?
Puis-je les utiliser pour connecter/déconnecter un utilisateur? Ou devrais-je simplement compter sur les fonctions set_current_user
et set_auth_cookie
pour gérer les identifiants?
Existe-t-il des inconvénients de wp_session_tokens
?
J'apprécierais vraiment si vous pouviez laisser un peu de temps pour expliquer ce que font ces jetons de session.
Normal cookies , utilisé par WordPress pour vous maintenir connecté pendant un certain temps, permet de vérifier si un utilisateur est connecté. Même si vous fermez votre ordinateur, ils seront présents lorsque vous l'allumerez. encore.
Les jetons de session sont quelque chose de différent. Ils sont destinés à transférer des informations entre plusieurs requêtes de page. L'exemple typique est le contenu d'un panier d'achat qui devrait être affiché lorsque vous parcourez les pages d'un magasin en ligne. Vous pouvez transmettre ces informations à l'aide d'arguments de requête (tels que www.example.com\?cart="book:Moby_Dick_1799847h4"
), mais cela impliquerait l'envoi de nombreuses informations à chaque fois. Au lieu de cela, le jeton est passé et le serveur sait quel contenu de panier afficher.
À moins que le jeton de session ne soit enregistré en tant que cookie sur votre ordinateur et que le serveur stocke le contenu du panier associé à ce cookie, les sessions disparaissent dès que vous fermez votre navigateur. Les jetons de session sont donc moins permanents que les cookies.
Vous pouvez utiliser des jetons de session pour vérifier si des personnes sont toujours connectées. Cela obligerait les personnes à se connecter à chaque fois qu'elles ouvrent le site. Dans ce cas, vous devrez également désactiver la procédure de connexion normale.
Il peut arriver que l'utilisation de jetons de session pour identifier des utilisateurs puisse mal tourner. Par exemple, si vous avez un site volumineux, réparti sur plusieurs serveurs, vous pouvez avoir une session valide avec un serveur, mais l'équilibreur de charge peut décider de vous envoyer sur un autre, ce qui vous fait perdre votre session et vous oblige par conséquent à vous reconnecter. L’approche des cookies n’en souffrirait pas, car tous les serveurs consulteront la même base de données pour déterminer si vous êtes connecté légitimement.
En résumé: à moins que vous ne soyez vraiment expert en procédures de sécurité, restez fidèle à celui que WordPress vous fournit.