2009-06-29 7 views
3

Tout d'abord, laissez-moi définir l'objectif final:Quels sont les détails de la manière dont Wordpress stocke les données d'authentification des utilisateurs?

Je voudrais Wordpress (version 2.8) pour gérer les données d'authentification/informations d'identification et le contrôle d'accès pour un site Web. Wordpress sera utilisé pour la plupart du site, mais certaines pages seront construites en dehors de l'environnement Wordpress. Ces pages devraient être en mesure d'utiliser les données d'authentification de l'utilisateur stockées dans la base de données Wordpress comme référence pour prendre leurs propres décisions au sujet de l'accès.

Ainsi, la question:

Comment, exactement, les données d'authentification des utilisateurs de stocker Wordpress dans sa base de données? La première partie de cette réponse est facile, dans la base de données Wordpress, il y a une table qui contient les données utilisateur primaires. Je crois que le nom par défaut pour cette table est "wp_users" mais cela peut changer en fonction de la façon dont Wordpress est configuré. Cette table contient les champs "user_login" et "user_pass" qui contiennent respectivement le nom d'utilisateur et le mot de passe. Le "user_login" est simplement un champ de texte, ce qui est assez facile d'accès, mais le mot de passe est salé et hashé. Cela conduit à la première chose qui reste à déterminer: quel est le processus de salage et de hachage que Wordpress utilise pour générer les chaînes qu'il stocke dans "user_pass"?

L'autre partie qui reste ouverte est où/comment Wordpress stocke ses «rôles». Dans mon installation, ces rôles sont par défaut: Administrateur, Editeur, Auteur, Contributeur et Abonné. Ce que je ne vois pas, c'est comment ces rôles sont associés à des utilisateurs individuels. Aussi, ces rôles peuvent-ils être modifiés?


Donc, pour résumer, la vraie question est en trois parties:

1) Quelle est la méthode spécifique Wordpress utilise pour transposer les mots de passe en texte clair des utilisateurs aux chaînes qui sont stockés dans le " user_pass "colonne de la table de base de données" wp_users "?

2) Où sont stockés les liens entre les utilisateurs individuels et leurs «rôles» Wordpress respectifs?

3) Les «rôles» de Wordpress peuvent-ils être modifiés pour changer leur nom et/ou les ajouter/supprimer? Remarque: Je me rends compte qu'une autre approche serait d'avoir des pages non Wordpress vérifier le cookie Wordpress pour déterminer l'accès. Je vais créer une autre question dans ce sens, mais pour les besoins de cette question, l'accent est mis sur la façon dont les pages non Wordpress peuvent utiliser la base de données Wordpress pour les décisions sur le contrôle d'accès.

+0

Avez-vous déjà réussi à afficher des pages en dehors de WP en fonction des rôles utilisateur? Vous voulez partager ce que vous avez fait? :) – Steven

Répondre

2
  1. Wordpress utilise le Portable PHP password hashing framework. Voir aussi cette question: What type of hash does WordPress use?
  2. Par défaut, cette association est dans la table wp_usermeta sous la wp_user_level clé
  3. Non sans plug-in (ou sans éditer la modification du code de Wordpress ou base de données)

Vous pourriez vouloir regarder le code pour bbPress car il va partager la base de données utilisateur Wordpress.

+0

1) Je vais jeter un coup d'oeil à ce lien. (J'ai recherché autour d'un montant décent mais ai manqué celui-là en quelque sorte.) 2) Merci pour le point à "wp_tech_usermeta", maintenant que je suis là, je vois ce qui se passe. Dans 2.8 il semble que vous devez interroger les colonnes "user_id", "meta_key" et "meta_value" où "meta_key" = "wp_tech_capabilities". La meta_value sera comme suit: 1: {s: 13: "administrateur"; b: 1;} ou a: 1: {s: 10: "abonné"; b: 1;}. 3) Gotcha, je vais travailler avec ce qu'il y a alors. Merci. –

Questions connexes