2012-04-04 8 views
0

Heroku gehostet Rails 3.2.2 App mit Devise und Omniauth.Rails 3.2.2 Facebook-App mit Devise und Omniauth umleiten von iframe auf Benutzerberechtigungen Bestätigung

Ich erhalte derzeit die Facebook-Benutzer-ID per Post beim Öffnen der App. Wenn der Benutzer existiert, melde ich mich automatisch an und alles funktioniert prächtig. Wenn sie dies nicht tun, ich umleiten sie

user_omniauth_authorize_path(:facebook) 

Welche „/ users/Auth/Facebook“ bekommt - und die Facebook ‚Berechtigungen Anforderung‘ Dialog. Wenn der Benutzer akzeptiert, wird OmniahuthCallbacksController # facebook aufgerufen, der den Benutzer anmeldet und auf die Startseite der App umleitet. Aber bei dieser letzten Weiterleitung werden sie aus dem Facebook-iframe umgeleitet.

Ich habe keine Ideen, warum das mich aus dem Iframe herausholt. Irgendwelche Vorschläge?

Geringfügige Korrektur, ich fordere neue Benutzer nicht auf, sich automatisch zu authentifizieren. Sie müssen einen Knopf drücken, um mit der Site zu interagieren, bevor sie nach Berechtigungen gefragt werden.

+0

Überprüfen Sie Ihre Weiterleitungseinstellungen für die Facebook-App auf Facebook-Seite. Die Einstellungen würden für dev und prod env unterschiedlich sein. –

+0

Wenn das nicht hilft, fügen Sie Ihren Code hier ein, damit andere ihn sehen können. –

+0

Danke, aber ich habe versucht, Zeit für einen schnellen Test zu sparen. Ich machte es die Erlaubnisanforderung in einem Popup anstelle von einer Umleitung, und es funktioniert jetzt gut. Hätte nicht versuchen sollen, Ecken zu schneiden ... –

Antwort

0

In Ihrem omniauth.rb Initialisierer setzen

OmniAuth.config.full_host = "http://apps.facebook.com/canvas_url/"

Schleppen/notwendig war, wenn ich mich richtig erinnere.

Dies sollte Sie innerhalb des Rahmens von Facebook halten.

Verwandte Themen