Schienen 3.2.17 Runtime Error Umleitung Verboten facebook
Habe ich diesen code benutze ich um Avatare von Facebook...
if auth.info.image.present?
user.update_attribute(:avatar, URI.parse(auth.info.image))
end
Wenn ich versuche zu laden den code jetzt bekomme ich diesen Fehler:
A RuntimeError occurred in authentications#create:
redirection forbidden: http://graph.facebook.com/672086173/picture?type=square -> https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/t5.0-1/1086349_672086173_156380036_q.jpg
/home/ubuntu/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/open-uri.rb:223:in `open_loop'
Ich verstehe, dass dies ein problem mit Open-URI nicht, die HTTP-zu-HTTPS-Umleitungen... und ich verstehe, dass dieses Problem mit Open-Uri-Umleitungen-plugin https://github.com/jaimeiniesta/open_uri_redirections
Aber es gibt zwei Dinge, die ich nicht verstehe:
- Dieser arbeiten war Prima GESTERN... und ich habe nichts verändert. Warum also plötzlich, können Büroklammer nicht die richtige URL?
-
Den Anweisungen für Open-Uri-Umleitungen geben das folgende Beispiel:
open('http://github.com', :allow_redirections => :safe)
Wie würde ich vereinbaren diese mit meinem code oben?
- Ich bin mit dem gleichen Fehler, gestern war es die Arbeit hahaha
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Wenn Sie
omniauth-facebook
Folgen Sie bitte deivid Antwort.Anderen Weg, um dieses Problem zu lösen, ist zu ersetzen http mit https. Auf diese Weise wird es redirect von https-zu-https-und Sie nicht bekommen eine Umleitung forbidden-Fehler.
Beispiel
Ich hatte genau das gleiche problem. Ich löse es mit folgenden Schritten
Erste in Ihrer gemfile hinzufügen
- und bundle installieren, installieren Sie das gem
Und dann in Ihrem Modell
Prozess jetzt die avatar-url mit der Methode wie
Hoffe, dies hilft jemand anderes sein können, haben dieses Problem.
Eigentlich denke ich, die sauberste Art des Umgangs mit diesen ist direkt anfordert, der avatar durch
https
. Zu tun, dass, nur verwendenstatt
Wenn Sie
omniauth-facebook
, müssen Sie angebensecure_image_url: true
in Ihrem omniauth-Initialisierung zu generieren die url. Etwa so:Ihre omniauth-Initialisierer sollten Sie in Ihren
config/initializers
Verzeichnis, heisst wohlomniauth.rb
oderdevise.rb
wenn Sie es zusammen mit entwickeln.config/initializers/devise.rb
Datei sollte enthalten:config.omniauth :facebook, "XXXX", "XXXX", image_size: { width: 500, height: 500 }, secure_image_url: true
open_uri_redirections war nicht für mich arbeiten. Ich konnte es arbeitet durch ändern der original-facebook-Bild-url von http zu https. So wird der redirect auf die akamai-CDN-on https-nicht http -> https umleiten, aber eine https - https-Umleitung.
in deinem Beispiel
user.update_attribute(:avatar, URI.parse(auth.info.image))
werden würde
War ich mit dem gleichen Fehler. Gestern war es Arbeit. So, ich habe die folgende Lösung ohne Edelstein:
Ich hoffe es kann dir helfen.
FWIW, @deep die Lösung war nicht ganz, für mich zu arbeiten, obwohl es mir bringen, deutlich näher.
Landete ich, dies zu tun:
Dann: