WordPress-Strategie für OAuth 2.0

Lesezeit: 2 Minuten

Ich arbeite an einer Anwendung, die es dem Benutzer ermöglicht, sich bei Devise und Omniauth zu authentifizieren und dann sein soziales Netzwerkkonto mit der App zu verbinden. Ich wollte die WordPress-Integration hinzufügen (ihre Website gibt an, dass sie OAuth 2.0-Authentifizierung und REST-API-Zugriff unterstützen).

Leider gab es für diesen Anbieter keine Omniauth-Strategie. Ich habe mir ein paar andere Juwelen angesehen und mich entschieden, meine eigenen zu schreiben – es schien nicht so kompliziert zu sein. Den Quellcode finden Sie hier.

Ich habe alle erforderlichen Angaben (lt WordPress-Dokumente), dann habe ich mich für eine App-ID und ein Geheimnis angemeldet. Ich bin hier auf mein erstes Problem gestoßen – WordPress verlangte a live, gemeinfrei als Umleitungs-URI. Ich wollte keinen verwenden – ich wollte zuerst im Entwicklungsmodus testen, also war localhost für mich in Ordnung. Ich habe eine Dummy-Adresse eingegeben und sie dann wieder in localhost geändert (Überraschung! Sie haben sie beim Update nicht validiert, nur beim Erstellen).

Ich habe die Anmeldeinformationen zu meinem Initialisierer hinzugefügt (config/initializers/devise.rb):

config.omniauth :wordpress, "my_app_id", "my_app_secret"

Es schien zu funktionieren – ich bekam den erwarteten Authentifizierungsdialog, der meine Anwendung erwähnte. Aber als ich auf „Autorisieren“ klickte und zu meiner Anwendung zurückgeleitet wurde, erhielt ich eine Fehlermeldung ungültige Anmeldeinformationen.

Ich habe die Anmeldeinformationen überprüft, aber sie waren korrekt (keine Tippfehler, richtige Reihenfolge). Ich habe das App-Geheimnis zurückgesetzt – kein Glück. Ich habe zwei weitere Anwendungen erstellt, aber immer noch nichts.

Mir sind schon die Ideen ausgegangen. Was kann einen solchen Fehler verursachen? Ist es möglich, dass es an der lokalen Adresse in relay_uri liegt?

Ich vermutete, dass es etwas war, das man leicht übersehen konnte, und das war es auch. Der Server von WordPress hat mit einer JSON-Zeichenfolge geantwortet, aber die Antwort wurde nicht als eine geparst. Daher konnte Omniauth Gem kein Zugriffstoken darin finden und hob die ungültige Anmeldeinformationen Error. Das Einrichten des richtigen Inhaltstyps funktionierte wie ein Zauber.

  • Ich stehe vor einem ähnlichen Problem. Ich habe eine benutzerdefinierte WordPress-Installation. ich bekomme Ungültige Anmeldeinformationen Fehler, während ich versuche, mit OAuth2 eine Verbindung zur WordPress-Installation herzustellen. Können Sie mir bitte helfen, den Inhaltstyp festzulegen?

    – Sch

    13. Mai 2015 um 5:57 Uhr

1216880cookie-checkWordPress-Strategie für OAuth 2.0

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy