Ich arbeite an einer Rails-App, die Bungie OAuth mit diesem Juwel authentifiziert. Meine Konfigurationen in initializers / devise.rb sind wie folgt:
%Vor% Bungies Entwicklerportal benötigt eine Umleitungs-URL mit HTTPS, also habe ich meine Anwendung auf Heroku geschoben und eine Weiterleitung verwendet um die Authentifizierung zum Testen auf localhost zu erzwingen. Mit dieser Methode funktioniert alles gut. Wenn ich jedoch die App in die Produktion schiebe, schlägt die Antwort von Bungie auf meine Anwendung mit OAuth2::Error, invalid_request: redirect_uri does not match application configuration
fehl. Die redirect_url ist genau dasselbe in den env-Variablen meiner Anwendung und auf Bungies Entwicklungsportal.
Da es in Produktion ist, bin ich auf die Protokolle beschränkt, die ich sehen kann. Ich habe versucht, die Anfragen in der Netzwerk-Registerkarte der Dev-Tools in meinem Browser zu verfolgen, aber alles sieht so aus, wie es sollte.
Ich habe versucht, mit dem Entwickler des bungie-oauth2-Edelsteins zu arbeiten, aber wir waren nicht in der Lage, zu einer Lösung zu kommen (und seine prod-Apps funktionieren gut damit).
Gibt es irgendetwas, das dazu führen könnte, dass sich redirect_url einmal in Heroku unterscheidet?
Wie gewünscht, hier ist meine Route für Omniuth:
%Vor% Ausgabe von rake routes
:
und mein Controller:
%Vor%Die vollständige Quelle finden Sie unter Ссылка .
Die Kodierung von redirect_uri
param in Ihrer Authentifizierungsanfrage an Bungie springt heraus:
Um es klar zu lesen, musste ich es dreimal entschlüsseln. Normalerweise werden Params nur einmal codiert
%Vor% Nicht sicher, ob dies das Problem verursacht. Kannst du überprüfen, wie oft request_uri
codiert wird, wenn du es von lokal kommst? Wenn es weniger als 3 ist, wird Ihre request_uri
während der Heroku-Bereitstellung eine zusätzliche Zeit codiert.
Um request_uri
für local zu erhalten, melden Sie sich von bungie ab, klicken Sie auf "Anmelden mit bungie" auf Ihrer lokalen Seite. Die URL im Browser hätte request_uri
.
Ersetzen Sie die Weiterleitungs-URL Ihrer Heroku-Anwendung in den Anmeldeinformationen
Tags und Links ruby ruby-on-rails oauth heroku omniauth