Überschreiben Sie den WordPress-Benutzer mit dem Oauth2-Konto

10

Ich versuche, WordPress als OAuth2-Client einzurichten. Alle unsere Benutzer werden in unserem proprietären CMS gespeichert, das ein OAuth-Anbieter ist. Wir haben sehr wenig (bis gar keine) Benutzer in unserer WordPress-Datenbank, hauptsächlich nur Administratoren. Im Idealfall möchte ich keine Benutzerdaten in der WordPress-Datenbank speichern, da ich den Status auf einer X-Anzahl von WordPress-Sites irgendwie beibehalten müsste, während ich in unserem proprietären CMS eine Quelle der Wahrheit habe.

Mein ursprüngliches Design bestand bisher darin, ein Plugin zu erstellen, das die vorhandenen WordPress-Benutzerfunktionen überschreibt und ein OAuth-Zugriffstoken und eine Benutzer-UUID in einem Cookie oder einer Sitzung speichert. Dieser Benutzer muss jedoch in anderen Plugins verfügbar sein, sodass die Standard-WordPress-Benutzermethoden idealerweise überschrieben werden.

Ist das ein akzeptabler Ansatz? Oder versuche ich, mit WordPress so zu arbeiten, dass es nicht funktioniert?

Ich kann Tonnen von Plugins finden, um WordPress als OAuth2-Anbieter einzurichten, aber nur sehr wenige als Client. Davon abgesehen habe ich einige gefunden, die WordPress als Client einrichten, aber viele davon sind spezifisch für Google Apps, Facebook, Twitter usw. Darüber hinaus sind diese Apps darauf angewiesen, Benutzerdaten lokal in der WordPress-Benutzertabelle zu speichern. Ich würde es vorziehen, dies nicht zu tun.

Vielen Dank für jede Hilfe!

Nick
quelle
Hallo Nick, Willkommen bei WPSE. Leider kann ich Ihnen bei dem eigentlichen Problem nicht helfen - aber könnten Sie bitte das Intro entfernen (das für das Problem nicht wirklich relevant ist) und vielleicht hinzufügen, was Sie bereits versucht haben, vielleicht sogar Code hinzufügen. Dies erleichtert es jedem, zu helfen. Vielen Dank!
Kraftner
Danke @kraftner für die hastige Antwort. Ich habe nicht viel Code geschrieben, weil ich zuerst versuche, Design / Forschung zu betreiben, und ich glaube, ich habe nach einer Bestätigung für meine Idee gesucht. Es scheint jedoch, als sollte ich einen Proof of Concept zum Laufen bringen. Entschuldigung, wenn ich hier den falschen Ansatz gewählt habe. Ich werde versuchen, etwas zu arbeiten und mit kleineren Problemen und einigen Arbeitsbeispielen zu posten.
Nick
Ich wollte dich nicht verärgern, ich dachte wirklich nur, dass ich dir als Neuling sagen würde, dass du mehr und bessere Antworten bekommst, wenn deine Frage kurz und konzentriert ist, anstatt eine Geschichte mit irrelevanten Informationen zu erzählen.
Kraftner
@kraftner überhaupt nicht verärgert sir!
Nick

Antworten:

1

Wenn Sie sich daran halten können, nur Funktionen zu überschreiben, die sich in wp-includes / pluggable.php befinden, sollten Sie in der Lage sein, jegliche Art von Plugin-Konflikten zu vermeiden ... es sei denn, Sie verwenden Plugins, die dieselben steckbaren Funktionen überschreiben.

Stellen Sie einfach sicher, dass Ihre Funktionen deklariert sind, bevor Pluggables geladen werden. Plugins werden vor der Pluggables-Datei geladen. Wenn Sie also Ihre Funktionsüberschreibungen in einem Plugin definieren, können Sie sicher sein, dass sie geladen werden. Andernfalls stellen Sie einfach sicher, dass Sie eine frühere Aktion verwenden, um dies zu tun.

Es gibt einige Authentifizierungs-, Cookie- und benutzerbezogene Funktionen zur Verwendung.

Freibeuter
quelle