2016-05-02 11 views
9

Ich befolge diese Anweisung aus einem anderen Thread. Simple example of popup. Das Problem ist, dass ich es nicht mit meiner Laravel App machen kann. Ich bin nicht sehr gut informiert über Cookie und ich bin mir nicht sicher, was ich mit $('#UserInfo').text($.cookie("some_cookie")); im Code tun soll.Laravel socialite popup

Ich habe die Facebook-Login auf Popup gemacht. Das Problem ist, dass, wenn ich wurde erfolgreich eingeloggt ist, wird es nicht schließen Popup stattdessen lädt der Umleitungspfad zu ihm.

Ich möchte das Popup-Fenster schließen, sobald erfolgreich angemeldet und dann die nächste Route zum Eltern laden.

<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

speichert die geschützte URL in der Session> Verbindung mit oAuth in Pop-up, erfolgreich Authentifizieren> Cookie für Ihre Website aktualisiert werden, wie authentifizierten nur das Popup schließen , leiten Sie vom Sitzungsspeicher zur geschützten URL um. –

+0

Durch das Schließen des Popup Ich meine Sie können immer die Kind-Popups von der Eltern, schreiben Sie einen kleinen Js-Code, um das zu tun –

+0

Welche Laravel-Version verwenden Sie? –

Antwort

7

Sobald Sie erfolgreich mit dem Facebook-API authentifizieren erhalten. Facebook leitet Sie zu dem Pfad um, den Sie für die Umleitung festgelegt haben (Standardverhalten).

Dieser Pfad ist derselbe, den Sie in Facebook API Dashboard für Ihre Anwendung festlegen. Sobald Sie von Facebook auf den konfigurierten Pfad weitergeleitet werden, müssen Sie Ihre Sitzungen, Cookies usw. von diesem Punkt an weiterleiten.

Lassen Sie uns wissen, ob dies Ihnen geholfen hat oder nicht.

2

Laravel unterstützen soziale Integration und hat offizielle Pakete. Socialite for Laravel

Es hat eine großartige Dokumentation und ausgezeichnete Codebeispiel.

Für Ihr Problem. Ich werde versuchen zu erklären, was Ihr Code tut:

Zuerst. Sie haben einen Code, der

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

und ein Code wird ein neues Fenster öffnet sich, dass das Fenster überprüft, ob geschlossen ist

if (signinWin.closed) { 

Dieser Code $('#UserInfo').text($.cookie("some_cookie")); nur gesetzt Textwert auf ein Element mit der ID von „Userinfo“. Es macht nichts.

für das Fenster zu schließen, um Sie hinzufügen sollten:

signinWin.close() 

an Ihrem Code. Oder Sie Code einfach das Fenster im selben Fenster öffnen, indem Sie:

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); 
Verwandte Themen