Как решить javascript не перенаправляя после входа в Google? - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь внедрить Google Signin на свой сайт. Как я могу перенаправить пользователей на страницу входа в систему?

Теперь я могу проверить токен, после проверки пользователь должен быть перенаправлен на страницу входа в систему, я пытался использовать javascript для этого, но, похоже, он не работает.

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

   <?php 
    ...
    require_once 'vendor/autoload.php';
    $client = new Google_Client();
    $client->setScopes('email');
    $payload = $client->verifyIdToken($id_token);
    if ($payload == true) {
       $userid = $payload['sub'];
       //check user existance
       if ($check_googleuser_result->num_rows == 1) {
           $_SESSION['loggedin_userlogin'] = $email;
           //redirect user
           echo '<script>window.location = "loggedin.php";</script>';
        } else {
         echo 'No matched user';
         //signout user
         echo '<script>location.replace("gsignout.php");</script>';
        }
     } else {
         echo 'error';
         //signout user
         echo '<script>location.replace("gsignout.php");</script>';
     }
    ?>

Ожидается перенаправление пользователя после успешной проверки существования пользователя.

Фактический вывод - сеанс создан, но JavaScript не выполняет перенаправление.

ОБНОВЛЕНИЕ: Снимок экрана background1 Скриншот фона2

1 Ответ

0 голосов
/ 15 апреля 2019

Поскольку вы пытаетесь перенаправить свой php-код, вы также должны использовать для этого предоставленные php-функции.

Для этого есть функция с именем header ()

Итак, ваш код будет выглядеть так:

<?php 
    ...
    require_once 'vendor/autoload.php';
    $client = new Google_Client();
    $client->setScopes('email');
    $payload = $client->verifyIdToken($id_token);
    if ($payload == true) {
       $userid = $payload['sub'];
       //check user existance
       if ($check_googleuser_result->num_rows == 1) {
           $_SESSION['loggedin_userlogin'] = $email;
           //redirect user
           header('Location: loggedin.php');
        } else {
         echo 'No matched user';
         //signout user
         header('Location: gsignout.php');
        }
     } else {
         echo 'error';
         //signout user
         header('Location: gsignout.php');
     }
 ?>
...