Frage

Die Standardeinstellung für Omniauth funktioniert wunderbar, wenn Sie es im bestehenden Fenster öffnen, aber nicht sicher, wie es funktioniert in einem Popup-Kontext, und Sie werden einen großen Teil der Interaktionen über Javascript

Handhabung
War es hilfreich?

Lösung

Scheint, wie Sie dies selbst tun könnten?

Wenn Benutzer klickt ‚login über facebook‘ - Verwendung JS Pop öffnet ein Fenster mit einer Lage von / Auth / facebook. Die ‚Rückruf‘ wird gerade Weg zurück zu / Auth / Rückruf in diesem Fenster. Sobald Sie Ihre Arbeit mit dem Rückruf getan haben, schließt das aktuelle Fenster und die übergeordnete auffrischen?

Andere Tipps

var newwindow;
function login(provider_url, width, height) {
  var screenX     = typeof window.screenX != 'undefined' ? window.screenX : window.screenLeft,
      screenY     = typeof window.screenY != 'undefined' ? window.screenY : window.screenTop,
      outerWidth  = typeof window.outerWidth != 'undefined' ? window.outerWidth : document.body.clientWidth,
      outerHeight = typeof window.outerHeight != 'undefined' ? window.outerHeight : (document.body.clientHeight - 22),
      left        = parseInt(screenX + ((outerWidth - width) / 2), 10),
      top         = parseInt(screenY + ((outerHeight - height) / 2.5), 10),
      features    = ('width=' + width + ',height=' + height + ',left=' + left + ',top=' + top);

      newwindow = window.open(provider_url, 'Login', features);

  if (window.focus)
    newwindow.focus();

  return false;
}

replace PROVIDER_URL mit '/ Auth / Facebook' oder '/ Auth / twitter' sollte funktionieren.

Bei Ihrer Callback-URL,

<script type="text/javascript">
  window.opener.location = '<%= @redirect_to %>';
  window.close();
</script>

Sie können die Seite aktualisieren, wie Sie wollen mit @redirect_to auf die Seite zeigt, wo Ihre Eltern-Fenster werden sollten aktualisiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top