Я использую Google Sign-in API для нашей системы. В прошлом году он работал нормально, пока внезапно не начал бесконечно зацикливаться на странице входа. Это только начало происходить сейчас, и это начало происходить, когда я использовал другую учетную запись для входа в систему.
Я уже пытался связываться с кодом, а также пытался исправить учетные данные на странице API Google, но безуспешно. Я проследил код и обнаружил, что он не возвращает никакого кода, который будет сохранен в переменной $ code, показанной ниже.
<?php require ("../css/vendor/autoload.php");
session_start();
require_once('../mysql_connect.php');
//Initialization
$g_client = new Google_Client();
$g_client->setClientId("260506751278-f15240qthdtd15vduqiap98a1oi8qk3o.apps.googleusercontent.com");
$g_client->setClientSecret("JOeshw3N8gjnRdB39xcakw0o");
$g_client->setRedirectUri("http://localhost/ccs/pages/login.php");
$g_client->setScopes("email");
$g_client->setPrompt("consent");
//Create the Authorization url
$auth_url = $g_client->createAuthUrl();
header("Location: $auth_url");
//echo "<a href='$auth_url'>Login Through Google </a>";
// authorization code
$code = isset($_GET['code']) ? $_GET['code'] : NULL;
// Get access token
if(isset($code)) {
try {
$token = $g_client->fetchAccessTokenWithAuthCode($code);
$g_client->setAccessToken($token);
}catch (Exception $e){
echo $e->getMessage();
}
try {
$pay_load = $g_client->verifyIdToken();
}catch (Exception $e) {
echo $e->getMessage();
}
} else{
$pay_load = null;
}
$email=$pay_load["email"];
$fn=$pay_load["name"];
$ln=$pay_load['family_name'];
$qemail="select * from faculty_account where faculty_id='{$email}'";
echo $qemail;
$resemail=mysqli_query($dbc,$qemail);
if(isset($pay_load)){
if (mysqli_num_rows($resemail)!=0)
{
$row=mysqli_fetch_array($resemail,MYSQLI_ASSOC);
$faculty_id=$row['faculty_id'];
$if_registered = $row['if_registered'];
$_SESSION['faculty_id'] = $faculty_id;
if($if_registered == 1){
$_SESSION['fn'] = $fn;
$_SESSION['ln'] = $ln;
header("Location: index.php");
}
else{
header("Location: register.php");
}
}
else{
echo $qemail;
header("Location: unauthorized.php");
}
}?>
Я ожидаю, что он войдет в систему, которую он делал раньше, но теперь он просто зацикливается.
РЕДАКТИРОВАТЬ: Я также хотел бы отметить, что очистка абсолютно все из моих браузеров работает только один раз. Я мог бы войти в систему один раз, затем никогда больше, даже если я воспроизвел шаги. Я думаю, что было бы также важно отметить, что система работает на сервере XAMPP.
РЕДАКТИРОВАТЬ 2: Хорошо, я обнаружил, что он перенаправляет на URL с переменной кода gettable "http://localhost/ccs/pages/login.php?code=4%2FgQF4oDmkaZrs1n47uKmHAS1r1Xrvhd-8RvDXC67kAne6jmyStvlOM2mbiXn3u_ZyKshE1SgS83P_mnJQPeloRsY&scope=email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&authuser=0&session_state=36e43354d2853a201602abdf62d2fa2172c51177..e703&prompt=consent#". Я использовал Internet Explorer и довольно забавно, Это было так медленно, что я мог получить RedirectURI с его переменными Теперь я совершенно не знаю, что происходит. Я предполагаю, что это ошибка от имени Google или что-то не так с токенами.