2012-05-10 25 views
6

Rozpocząłem integrację uwierzytelniania facebook'a z moją witryną Rails 3.1, ale wystąpił problem, gdy kliknę przycisk anulowania w oknie dialogowym autoryzacji fb. Kiedy kliknę przycisk Anuluj, nastąpi przekierowanie z powrotem do mojej witryny na stronie/auth/facebook/callback, a następnie przekierowanie do strony/login (używam programu Devise).Przycisk anulowania Omniauth-facebook

Co chcę zrobić, to przekierować anulowany auth na stronę, która pozwala użytkownikowi utworzyć konto w standardowy sposób (e-mail, nazwa użytkownika, hasło itp.). Jak mogę zmienić przekierowanie na stronę/login?

Przy okazji korzystam z klejnotu omniauth-facebook.

Dzięki!

Odpowiedz

0

myślę, że może być w stanie przesłonić domyślne on_failure zachowania w swojej omniauth config, nie używam opracowania, ale używam gem omniauth-facebook i mieli sukces z wariacjami na temat:

OmniAuth.config.on_failure = Proc.new { |env| 
    OmniAuth::FailureEndpoint.new(env).redirect_to_failure 
} 

lub coś bardziej niestandardowe jak:

OmniAuth.config.on_failure do |env| 
    new_path = "#{env['SCRIPT_NAME']}#{OmniAuth.config.path_prefix}/failure?message=#{error_type}" 

    [302, {'Location' => new_path, 'Content-Type'=> 'text/html'}, []] 
end 
3

Dodaj metodę awarii w omniauth regulatora zwrotnego i określić dostosowany zachowanie.

+0

Jak dowiedziałeś się o tej akcji "awarii"? To zadziałało idealnie dla mnie. Ale nie znalazłem odpowiedniej dokumentacji dla takiego problemu, który jest denerwującą częścią gem Devise (OmniAuth). – Jonauz

+2

Sprawdziłem logi rozwoju szyn i odkryłem, że opracowuję metodę niepowodzenia połączeń, gdy oauth się nie powiedzie. więc zrobiłem swoje. – synthresin

Powiązane problemy