2016-05-02 15 views
9

他のスレッドからこの指示に従っています。 Simple example of popup。問題は私のLaravelアプリでうまくいかないことです。私はクッキーに関する知識があまりよくなく、コード内で$('#UserInfo').text($.cookie("some_cookie"));とどうすればよいか分かりません。Laravel socialite popup

私はポップアップにFacebookのログインをしました。問題は、私が が正常にログインしたときにポップアップを閉じるのではなく、 へのリダイレクトパスをロードすることです。

正常にログインすると、ポップアップウィンドウを閉じてから を親にロードします。あなたが成功したFacebookのAPIで認証を取得したら

<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

ストアのセッションで保護されたURLを、ポップアップでのOAuthとの接続>クッキーは、あなたのサイトのために更新されますセッションストレージから保護されたURLにリダイレクトします。 –

+0

ポップアップを閉じると、あなたはいつも親からの子ポップアップを制御できます。小さなjsコードを書いてください –

+0

あなたはどのLaravelバージョンを使用していますか? –

答えて

7

。 Facebookはリダイレクト用に設定したパスにリダイレクトします(デフォルトの動作)。

このパスは、アプリケーション用のFacebookブックDashboardで設定したパスと同じです。 Facebookから設定されたパスにリダイレクトされると、この時点以降のセッションやCookieなどを管理する必要があります。

これがあなたを助けたかどうか私たちにお知らせください。

2

Laravelは社会的統合をサポートしており、正式なパッケージがあります。 Socialite for Laravel

素晴らしいドキュメントと優れたコードサンプルがあります。

問題が発生しました。あなたのコードが何をしているのかを説明しようとします:

最初。あなたは、新しいウィンドウに

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

とウィンドウが「のUserInfo」のIDを持つ要素にこのコード$('#UserInfo').text($.cookie("some_cookie"));のみ設定テキスト値

if (signinWin.closed) { 

を閉じているかどうかを確認するコードを開き、コードを持っています。それは事をしません。

signinWin.close() 

あなたのコードに:あなたが追加する必要がクローズするウィンドウためには

。それとも、コードだけで設定することにより、同じウィンドウ内のウィンドウを開きます。ちょうど、ポップアップを閉じ認証済みとして正常に認証され、>

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); 
関連する問題