google登录后如何解决javascript不重定向问题?

问题描述 投票:0回答:1

我正在尝试将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未执行重定向。

更新:Screenshot of background1 Screenshot of background2

javascript php google-api google-signin
1个回答
0
投票

当您尝试重定向您的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');
     }
 ?>
© www.soinside.com 2019 - 2024. All rights reserved.