2016-01-22 11 views
7

Zrobiłem przykładową aplikację z autem devise i facebook. Chcę pokazać zdjęcie profilowe fb jako awatar użytkownika i działa w przeglądarce Chrome i IE. Ale w firefoxie widzę ostrzeżenie o 'Tracking Protection' - "Connection is not secure".Obraz szynowy i ochrona śledzenia

napisałem prostą metodę:

def avatar_for(user) 
    avatar_url = user.image 
    image_tag(avatar_url, alt: user.name, class: "avatar") unless user.image.nil? 
end 

Jak mogę zrobić taka metoda/połączenie jest bezpieczne?

EDIT: To jest dokładnie jak max napisał: za pomocą https zająć vis secure_image_url usuwa ostrzeżenia w „Tracking ochrony” ostrzeżenia w Firefox, ale nie jest wyświetlany żaden obraz.

+0

Należy pobrać obraz poprzez 'https' – DevMarwen

+0

Brzmi to dość oczywiste, ale facebook poddawaj adresu zwrotnego w http ja mógł ręcznie zmienić na https i działałby, ale firefox, chociaż nie wyświetla obrazu, tym razem bez ostrzeżenia – dezerb

Odpowiedz

6

Użyj opcji secure_image_url mieć OmniAuth Facebook utworzyć adres HTTPS Zamiast:

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], 
    secure_image_url: true 
end 
+0

Zakładam, że korzystasz z OmniAuth na Facebooku. Proszę mi powiedzieć, czy się mylę. – max

+0

Tak Używam OmniAuth. Skonfigurowałem OmniAuth do korzystania z secure_image_url, a teraz nowe konto jest tworzone z łączem https do profilu obrazu, ale firefox nadal go nie pokazuje – dezerb

+0

Ah Jeszcze nie spotkałem tego - ale wygląda na to, że może to być spowodowane Mozem [Funkcja ochrony śledzenia, która wydaje się unikać obrazków, które uważa za użyteczne do śledzenia ruchu użytkowników] (https://blog.mozilla.org/nnethercote/2014/11/12/quantifying-the-effects-of-firefoxs-tracking- ochrona/). Niestety nie bardzo wiem, co z tym zrobić. Możesz pobrać obraz podczas tworzenia profilu, ale może to naruszyć TOS na Facebooku. – max