Domanda

Il valore predefinito per Omniauth funziona a meraviglia se si sta aprendo nella finestra esistente, ma non è sicuro come funziona in un contesto pop-up, e si sta occupando gran parte delle interazioni tramite javascript

È stato utile?

Soluzione

Sembra che si possa fare da soli?

Quando 'login via Facebook' utente fa clic - utilizzo JS al pop aprire una finestra con una posizione di / auth / facebook. Il 'richiamata' sarà solo percorso di ritorno verso / auth / richiamata in questa stessa finestra. Una volta che avete fatto il vostro lavoro con la richiamata, chiudere la finestra corrente e aggiorna il genitore?

Altri suggerimenti

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;
}

Sostituire PROVIDER_URL con '/ auth / facebook' o '/ auth / twitter' dovrebbe funzionare.

Al vostro URL callback,

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

È possibile aggiornare la pagina tuttavia si desidera con @redirect_to che punta alla pagina in cui la finestra del genitore deve essere aggiornata per.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top