Google登录后如何解决JavaScript无法重定向的问题?

我正在尝试在我的网站上实施Google登录。如何将用户重定向到已登录的会员页面?


我现在可以验证令牌,在验证之后,应该将用户重定向到登录的成员页面,我尝试使用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不执行重定向。


慕姐8265434
浏览 168回答 1
1回答

梵蒂冈之花

当您尝试重定向php代码时,还应该使用php提供的功能。为此,有一个名为header()的函数因此您的代码如下所示:<?php&nbsp;&nbsp; &nbsp; ...&nbsp; &nbsp; require_once 'vendor/autoload.php';&nbsp; &nbsp; $client = new Google_Client();&nbsp; &nbsp; $client->setScopes('email');&nbsp; &nbsp; $payload = $client->verifyIdToken($id_token);&nbsp; &nbsp; if ($payload == true) {&nbsp; &nbsp; &nbsp; &nbsp;$userid = $payload['sub'];&nbsp; &nbsp; &nbsp; &nbsp;//check user existance&nbsp; &nbsp; &nbsp; &nbsp;if ($check_googleuser_result->num_rows == 1) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$_SESSION['loggedin_userlogin'] = $email;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//redirect user&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;header('Location: loggedin.php');&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo 'No matched user';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//signout user&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;header('Location: gsignout.php');&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp;} else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo 'error';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//signout user&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;header('Location: gsignout.php');&nbsp; &nbsp; &nbsp;}&nbsp;?>
打开App,查看更多内容
随时随地看视频慕课网APP