Ich verwende Devise 3.5 mit Omniauth in einer Rails 4 App. Ich habe eine Integration mit Facebook erstellt, die es einem Benutzer ermöglicht, seinen Facebook-Account mit meiner App zu verbinden. Wenn der Benutzer derzeit auf die Verbindungsschaltfläche klickt, werden sie an /user/auth/facebook
gesendet und dann an die Rückruf-URL weitergeleitet, die Omniauth generiert: /user/auth/facebook/callback
. Ich möchte diese Callback-URL in einigen Fällen manuell überschreiben - was bedeutet, dass ich sie in einem Initialisierer nicht überschreiben möchte - mit einer vollqualifizierten URL. Wenn ein Benutzer beispielsweise mit http://www.example.com/
startet, möchte ich möglicherweise die Standard-Callback-URL mit http://app.example.com/user/auth/facebook/callback
überschreiben.Devise/OmniAuth Standard-Callback-URL überschreiben
Meine App hat dynamische Subdomains und ein Benutzer wird (fast) immer den Authentifizierungsprozess für eine Subdomain beginnen. Leider scheint es, dass Facebook keine Wildcards in oauth redirect URLs unterstützt, weshalb ich die Fähigkeit erkennen möchte, ob ein Benutzer in einer Subdomain ist und die Callback-URL auf etwas, das ich auf meiner Facebook-App auf die Whitelist gesetzt habe, um die Autorisierung einzustellen Prozess ist erfolgreich.
Von dem, was ich gelesen habe, akzeptiert der URL-Helper zusätzliche Argumente, die als Parameter weitergegeben werden. Ich habe versucht, in wie so einen benutzerdefinierten Callback-Weg vorbei, aber ohne Erfolg:
user_omniauth_authorize_path(:facebook, callback_path: @custom_callback)
Ich habe auch versucht callback_path
-redirect_url
und redirect_uri
verändern, aber nichts scheint zu funktionieren. Wenn ich den erzeugten Link ansehe, enthält er zwar den Callback als Parameter in der URL, aber wenn ich auf den Link klicke, werde ich zurück zur Standard-Callback-URL anstelle der benutzerdefinierten Callback-URL weitergeleitet.
Ich brauche diese Funktion auch :( – diogopms