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?