PHP :: GOOGLE API LOGIN :: localhost слишком много раз перенаправлял вас ОШИБКА

Я все еще изучаю создание веб-сайта и хочу попробовать использовать Google Login. Однако у меня возникла такая ошибка. Я искал много похожих вопросов, но пока не нашел решения. Это происходит, когда я хочу выполнить авторизацию. Вот моя кодировка и файлы.

auth.php

<?php

require_once ('libraries/Google/autoload.php');

session_start(); //session start


$client_id = 'xxxxxxxxxxxxxxx.apps.googleusercontent.com';
$client_secret = 'xxxxxxxxxxxxxxxxxxxx';
$redirect_uri = 'http://localhost/google2/auth.php';

//database
$db_username = "root"; //Database Username
$db_password = ""; //Database Password
$host_name = "xxxxxxxxx"; //Mysql Hostname
$db_name = 'xxxxxxxx'; //Database Name


$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("email");
$client->addScope("profile");


if (!isset ($_GET['code'])) {
    $auth_url = $client->createAuthUrl();
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
else {
    $client->authenticate($_GET['code']);
    $_SESSION['access_token'] = $client->getAccessToken();

    try {
        $service = new Google_Service_Oauth2($client);
        // $_SESSION['access_profile'] = $service->userinfo->get();
        $user = $service->userinfo->get(); //get user info
        $user = $_SESSION['access_profile'];

        // connect to database
        $mysqli = new mysqli($host_name, $db_username, $db_password, $db_name);
        if ($mysqli->connect_error) {
            die ('Error : (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);

        }

        //check if user exist in database using COUNT

        $result = $mysqli->query("SELECT COUNT(google_id) as usercount FROM google_users WHERE google_id=$user->id");
        $user_count = $result->fetch_object()->usercount;           //will return 0 if user doesn't exist

        //masukin ke mysql nih//
        $statement = $mysqli->prepare("INSERT INTO google_users (google_id, google_name, google_email, google_link, google_picture_link) VALUES (?,?,?,?,?)");
        $statement->bind_param('issss', $user->id, $user->name, $user->email, $user->link, $user->picture);
        $statement->execute();
        echo $mysqli->error;



    }
    catch (\Exception $e) {
        echo $e->__toString();
        unset ($_SESSION['access_token']);
        die;
    }
    header('Location:afterlogin.php');
}

?>

А это мой afterlogin.php

<?php


session_start();

if (isset ($_SESSION['access_token']) && $_SESSION['access_token']) {
    $user = $_SESSION['access_profile'];
      //print user details
  echo '<pre>';
  print_r($_SESSION['access_profile']);
  echo '</pre>';

}

?>

Тогда это мой index.php

<?php

require_once ('libraries/Google/autoload.php');

session_start(); //session start

if (isset ($_SESSION['access_token']) && $_SESSION['access_token']) {
  header('Location:afterlogin.php');
}
else {
  echo "<a href='auth.php'> Login dengan akun Google</a>";
}

надеюсь, кто-нибудь сможет найти, где ошибка и как я могу ее исправить .. Заранее спасибо

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
242
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

При перенаправлении местоположения header (). измените переменную $ redirect_uri на $ auth_url

Потому что $ auth_url еще не использовался.

если вы установили перенаправление URI для самого файла. Вы только что сделали бесконечный цикл перенаправления.

Другие вопросы по теме