2016-05-02 17 views
9

Sto seguendo questa istruzione da un'altra discussione. Simple example of popup. Il problema è che non posso farlo funzionare sulla mia app Laravel. Non sono abbastanza informato sui cookie e non sono sicuro di cosa fare con $('#UserInfo').text($.cookie("some_cookie")); nel codice.Laravel socialite popup

Ho fatto il login di Facebook per popup. Il problema è che quando ho effettuato il login con I , non chiuderò il popup, esso carica il percorso di reindirizzamento su .

Desidero chiudere la finestra popup una volta effettuato l'accesso con esito positivo e quindi caricare il percorso successivo al genitore.

<input id="btn-facebook" type="button" value="Connect with Facebook" /> 
<script src="{{ asset('js/jquery.cookie.js') }}"></script> 
<script> 
    var signinWin; 
    $('#btn-facebook').click(function() { 
     // var pos = screenCenterPos(800, 500); 
      signinWin = window.open("{!!URL::to('facebook')!!}", "SignIn", "width=780,height=410,toolbar=0,scrollbars=0,status=0,resizable=0,location=0,menuBar=0,left=" + 500 + ",top=" + 200); 
      setTimeout(CheckLoginStatus, 2000); 
      signinWin.focus(); 
      return false; 
     }); 

    function CheckLoginStatus() { 
     if (signinWin.closed) { 
      $('#UserInfo').text($.cookie("some_cookie")); 
     } 
     else setTimeout(CheckLoginStatus, 1000); 
    } 

</script> 
+0

negozio l'url protetta nella sessione> connettersi con OAuth nel popup, l'autenticazione con successo> cookie viene aggiornato per il vostro sito come autenticato solo chiudere il popup , reindirizza all'URL protetto dalla memoria di sessione. –

+0

Chiudendo il popup intendo che puoi sempre controllare i popup figli dal genitore, scrivi un piccolo codice js per farlo –

+0

Quale versione di Laravel stai usando? –

risposta

7

Una volta ci si autenticato con successo con l'API di Facebook. Facebook ti reindirizzerà al percorso che hai impostato per il reindirizzamento (comportamento predefinito).

Questo percorso è lo stesso impostato in Facebook API Dashboard per l'applicazione. Una volta che sarai reindirizzato al percorso configurato da Facebook, dovrai gestire le tue sessioni, i cookie ecc. Da questo punto in poi.

Facci sapere se questo ti ha aiutato o no.

2

Laravel supporta l'integrazione sociale e ha pacchetti ufficiali. Socialite for Laravel

Ha un'ottima documentazione e un eccellente codice di esempio.

Per il tuo problema. Proverò a spiegare che cosa fa il tuo codice:

Primo. Si dispone di un codice che apre una nuova finestra

signinWin = window.open("{!!URL::to('facebook')!!}", "SignIn", "width=780,height=410,toolbar=0,scrollbars=0,status=0,resizable=0,location=0,menuBar=0,left=" + 500 + ",top=" + 200); 

e un codice che controlla se la finestra è chiusa

if (signinWin.closed) { 

Questo codice $('#UserInfo').text($.cookie("some_cookie")); solo impostare il valore di testo a un elemento con ID di "UserInfo". Non fa niente.

Affinché la finestra per chiudere si dovrebbe aggiungere:

signinWin.close() 

al codice. Oppure si codice sufficiente aprire la finestra nella stessa finestra impostando:

window.open("{!!URL::to('facebook')!!}", "_self", "width=780,height=410,toolbar=0,scrollbars=0,status=0,resizable=0,location=0,menuBar=0,left=" + 500 + ",top=" + 200);