为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕姐8265434 2021-04-08 14:15:14
我正在尝试在我的网站上实施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不执行重定向。
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

当您尝试重定向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');

     }

 ?>


查看完整回答
反对 回复 2021-04-23
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信