Remplacer l'utilisateur WordPress avec un compte Oauth2

10

J'essaie de configurer WordPress en tant que client OAuth2. Tous nos utilisateurs sont stockés dans notre CMS propriétaire qui est un fournisseur OAuth. Nous avons très peu (ou pas) d'utilisateurs dans notre base de données WordPress, principalement des administrateurs. Idéalement, je ne veux pas stocker de données utilisateur dans la base de données WordPress car je devrais en quelque sorte maintenir l'état sur X nombre de sites WordPress, alors que j'ai une source de vérité dans notre CMS propriétaire.

Jusqu'à présent, ma conception initiale était de créer un plugin qui remplace la fonctionnalité utilisateur WordPress existante et stocke un jeton d'accès OAuth et un uuid utilisateur dans un cookie ou une session. Mais, j'ai besoin que cet utilisateur soit accessible dans d'autres plugins, remplaçant donc idéalement les méthodes utilisateur WordPress par défaut.

Est-ce une approche acceptable? Ou est-ce que j'essaie de travailler avec WordPress d'une manière qui n'était pas censée fonctionner?

Je peux trouver des tonnes de plugins pour configurer WordPress en tant que fournisseur OAuth2, mais très peu en tant que client. Cela étant dit, j'en ai trouvé certains qui configurent WordPress en tant que client, mais beaucoup d'entre eux sont spécifiques à Google Apps, Facebook, Twitter, etc. De plus, ces applications reposent sur le stockage local des données utilisateur dans la table utilisateur WordPress. Je préférerais ne pas le faire.

Merci pour toute aide!

pseudo
la source
Salut Nick, Bienvenue sur WPSE. Malheureusement, je ne peux pas vous aider avec le problème actuel - mais pourriez-vous s'il vous plaît supprimer l'intro (pas vraiment pertinent pour le problème) et peut-être ajouter ce que vous avez déjà essayé, peut-être même ajouter du code. Cela facilite la tâche de chacun. Merci!
kraftner
Merci @kraftner pour la réponse précipitée. Je n'ai pas écrit beaucoup de code parce que j'essaie d'abord de faire de la conception / recherche et je suppose que je cherchais une affirmation avec mon idée. Cependant, il semble que je devrais obtenir une preuve de concept opérationnelle. Désolé si j'ai pris la mauvaise approche ici. Je vais essayer de faire un peu de travail et de poster avec des problèmes plus petits et quelques exemples de travail.
Nick
Je ne voulais pas vous déranger, je pensais vraiment que, comme vous êtes nouveau, je vous dirais que vous obtiendrez des réponses plus nombreuses et meilleures si votre question est courte et ciblée au lieu de raconter une histoire avec des informations non pertinentes.
kraftner
@kraftner pas du tout contrarié monsieur!
Nick

Réponses:

1

Si vous pouvez vous limiter à remplacer uniquement les fonctions situées dans wp-includes / pluggable.php, vous devriez être en mesure d'éviter tout type de conflit de plug-in ... à moins que vous n'utilisiez des plug-ins qui remplacent les mêmes fonctions enfichables.

Assurez-vous simplement que vos fonctions sont déclarées avant le chargement des pluggables. Les plugins sont chargés avant le fichier pluggables ... donc si vous définissez vos remplacements de fonction dans un plugin, vous pouvez être certain qu'ils sont chargés. Sinon, assurez-vous simplement d'utiliser une action antérieure pour le faire.

Il y a pas mal de fonctions d'authentification, de cookies et liées à l'utilisateur à utiliser.

Corsaire
la source