我正在尝试将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未执行重定向。
当您尝试重定向您的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');
}
?>