Laravel - как вернуть json на текущей странице вместо всплывающего окна - PullRequest
0 голосов
/ 18 мая 2018

Я создаю SPA с помощью Laravel и Vuejs, поэтому я хочу разрешить пользователям входить с помощью github во всплывающее окно, но проблема в том, что функция обратного вызова авторизации возвращает данные json во всплывающем окне вместо текущей страницы.

Здесьэто код:

Клиентская сторона

authenticate() {
            window.open("login/github", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
        }

Серверная сторона

public function redirectToProvider($service, Request $request)
{
    return Socialite::driver($service)->stateless()->redirect();
}

public function handleProviderCallback($service, Request $request)
{
    $providerUser = Socialite::driver($service)->stateless()->user();

    return new JsonResponse([
        'data' => $providerUser
    ]);
}

Мне нужно закрыть всплывающее окно, когда пользователь успешно вошел в систему, а затем handleProviderCallback, чтобы вернутьсяJSON на текущей странице.Любая идея, как я могу решить это?

1 Ответ

0 голосов
/ 21 мая 2018

Родительское окно

<button type="button" onclick="openNewWindow()">Login With Github</button>
    <script>
        var win = null;
        function openNewWindow() {
            win = window.open("ukulele.html", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
            win.focus();
        }
        window.saveToken = function() {
            console.log(win.document.getElementById('json_data_here').value)
        }
    </script>

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

<input type="hidden" id="json_data_here" value="aadcs"/>
<script>
    window.opener.saveToken();
    window.close();
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...