Rails Facebook Login Fehler mit Omniauth-Facebook - OmniAuth :: Strategien :: OAuth2 :: CallbackError

8

Ich versuche Facebook mit omniauth-facebook in Rails 3.2.9 zu loggen; Ich habe die Schritte von Ryan Bates in Ссылка verfolgt und in diesem Moment habe ich den gleichen Code.

>

Wenn ich versuche mich ohne das Javascript einzuloggen funktioniert es (es dauert mich auf Facebook, ich gewähre die Berechtigungen, und bringt mich wieder zur App), aber wenn ich es mit dem Javascript versuche (für das Facebook-Popup) geht es zunächst zeigt das Popup zum Login an, macht dann aber eine Umleitung und wirft diesen Fehler (ohne nach den Berechtigungen zu fragen):

%Vor%

Dies ist ein sehr häufiger Fehler; Ich habe die Recherche gemacht und alle Lösungen ausprobiert (meistens seit einigen Monaten), aber keiner von ihnen funktioniert. Das habe ich ausprobiert:

  1. Das Überprüfen der Sandbox in Facebook ist deaktiviert (und ich habe Stunden auf die Verbreitung gewartet)
  2. Überprüfung der Website-URL auf http://localhost:3000/
  3. Überprüfung der App-ID und des App-Geheimnisses
  4. Herabstufung des omniauth-facebook Gems auf 1.4 und wirft diesen Fehler auf: omniauth-facebook must pass either a code parameter or a signed request (via signed_request parameter or a fbsr_XXX cookie)
  5. Downgrade auf Rails 3.2.8

Was soll ich noch tun? (Ich denke, der Schlüssel ist im Javascript, und jetzt habe ich den gleichen Code des Videos, mit CoffeeScript). Vielen Dank im Voraus!

    
pablomarti 16.11.2012, 23:06
quelle

2 Antworten

17

Ich bin diesem Railcast gerade gefolgt und habe es zum Laufen gebracht. In den Kommentaren sehen Sie Leute, die Ihr Problem diskutieren. Nach den Links dort endete ich mit diesem Problem auf Github und diesem Frage zu StackOverflow .

Ich empfehle, zu 1.6.0 und zu 2.0.0 zu aktualisieren, wenn es endlich herauskommt. In der Zwischenzeit stellen Sie sicher, dass Sie keine dieser Fehler machen:

  • Definieren Sie Ihre App-Anmeldedaten in zwei verschiedenen Initialisierungen, normalerweise omniauth.rb und devise.rb . Quelle

  • Der Domainname stimmt nicht mit Ihrer Live-Site und der in Ihrer Facebook-Anwendung konfigurierten Site-URL überein. Quelle

  • Verlassen der Facebook-Anwendung im Sandbox-Modus, sodass der Domainname nicht mit dem der Produktion übereinstimmt. Quelle

  • Hinzufügen eines before_filter :authenticate zum OmniahuthCallbacksController oder ApplicationController (da OmniahuthCallbacksController von ApplicationController erbt). Quelle

  • Verwendung von omniauth-facebook in Verbindung mit dem clientseitigen Flow von Facebook. Quelle

  • Mit dem state param.

Ashitaka 22.11.2012, 18:27
quelle
0

Lösung ohne Downgrade (mit 1.5.1 jetzt):

Ссылка - & gt; Fügen Sie dies Ihrer Provider-Deklaration hinzu: Anbieter: facebook, xxxxxxxxx, yyyyyyyyy, {: provider_ignores_state = & gt; Wahr}

    
alex 19.12.2013 20:07
quelle