2016-05-02 4 views
9

Я следую этой инструкции из другой темы. Simple example of popup. Проблема в том, что я не могу заставить ее работать над моим приложением Laravel. Я не совсем осведомлен о cookie, и я не уверен, что делать с кодом $('#UserInfo').text($.cookie("some_cookie"));.Laravel socialite popup

Я сделал вход в facebook для всплывающего окна. Проблема в том, что когда я был успешно зарегистрирован, он вместо этого закрывает всплывающее окно, оно загружает путь перенаправления к нему.

Я хочу закрыть всплывающее окно после успешного входа в систему, а затем загрузить следующий маршрут к родительскому.

<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 API. Facebook перенаправит вас на путь, который вы настроили для перенаправления (поведение по умолчанию).

Этот путь тот же, что вы установили в панели инструментов facebook API для вашего приложения. Как только вы перенаправляетесь к настроенному пути из facebook, вы должны управлять своими сеансами, куки-файлами и т. Д. С этого момента.

Сообщите нам, если это вам помогло или нет.

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

И код, который проверяет, является ли окно закрыто

if (signinWin.closed) { 

Этот код $('#UserInfo').text($.cookie("some_cookie")); только установить текстовое значение элементу с идентификатором «UserInfo». Это ничего не значит.

Для того, чтобы закрыть окно, чтобы вы должны добавить:

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); 
Смежные вопросы