PHP: Вход в систему при помощи учетной записи Google на PHP
В этом руководстве Вы узнаете, как реализовать вход при помощи учетной записи Google на PHP. А также мы предоставим полный исходный код.
Цель этого руководства - поделиться простыми шагами по созданию или реализации входа при помощи Google на PHP.
Вход в систему при помощи учетной записи Google на PHP
Просто следуйте приведенным ниже 6 простым шагам, чтобы реализовать вход в систему с помощью Google на PHP:
1. Получите секретный ключ клиента Google OAuth 2.0 и идентификатор клиента.
Прежде всего, вам необходимо получить ключи Google API, для этого у вас должен быть аккаунт Google. Итак, войдите в свою учетную запись Google и выполните шаг ниже.
Перейдите по этой ссылке https://console.developers.google.com/ и нажмите ссылку «Создать новый проект», чтобы создать новый проект.
После этого вы увидите окно, в котором вы можете установить имя своего проекта по своему усмотрению.
Теперь вы успешно создали новый проект. После этого нужно в верхнем меню выбрать созданные проекты. Затем нажмите на экран согласия OAuth и выберите данный вариант в соответствии с вашими требованиями:
После этого автоматически появятся данные ниже экрана. На этом экране вам необходимо ввести URL-адрес вашего веб-сайта, URL-адрес политики конфиденциальности и т. д.
Затем вам нужно щелкнуть учетные данные в левом меню и появиться на экране ниже. На этом экране вам нужно выбрать OAuth client ID
После этого появится форма ниже. Здесь из различных вариантов типа приложения вы должны выбрать веб-приложение. После того, как вы выберете опцию «Веб-приложение», на веб-странице появится одна форма. Здесь вы должны указать имя, а также указать поле URI авторизованного перенаправления и, наконец, нажать кнопку «Создать».
Затем автоматически появляется всплывающее окно, как показано ниже. После того, как вы нажмете кнопку «Создать», вы сможете получить свой идентификатор клиента и секретный ключ. Вы должны скопировать оба ключа для будущего использования для реализации входа в систему с помощью учетной записи Google с использованием PHP.
2. Загрузите клиентскую библиотеку Google API для PHP.
Следующим шагом вам необходимо загрузить клиентскую библиотеку Google API для PHP. Откройте командную строку, перейдите в корневой каталог проекта и нажмите приведенную ниже команду после выполнения следующей команды.
// корневой каталог проекта
cd/project_root_directory
//для библиотеки google
composer require google/apiclient:"^2.0"
3. Создайте файл конфигурации Google.
Затем вам нужно создать один файл PHP с именем gconfig.php. В этот файл мы поместим секретный ключ Google, секретный идентификатор и URL-адрес перенаправления. Обновите приведенный ниже код в своем файле:
<?php
//Include Google Client Library for PHP autoload file
require_once 'vendor/autoload.php';
//Make object of Google API Client for call Google API
$google_client = new Google_Client();
//Set the OAuth 2.0 Client ID
$google_client->setClientId('437940563317-pk2ftff46ubrlt8bfn18u1pbc427690s.apps.googleusercontent.com');
//Set the OAuth 2.0 Client Secret key
$google_client->setClientSecret('mkwA89zWqZBg2ZcOYhrf3vud');
//Set the OAuth 2.0 Redirect URI
$google_client->setRedirectUri('url_redirect_url');
//
$google_client->addScope('email');
$google_client->addScope('profile');
//start session on web page
session_start();
?>
4. Создайте файл index.php.
На этом этапе вам нужно создать файл index.php. В этом файле PHP мы покажем логин Google.
Обновите приведенный ниже код в файле index.php.
<?php
//Include Google Configuration File
include('gconfig.php');
if (!isset($_SESSION['access_token'])) {
//Create a URL to obtain user authorization
$google_login_btn = '<a href="' . $google_client->createAuthUrl() . '"><img src="//makecodes.ru/uploads/posts/2021-12/google-login-image.webp" /></a>';
} else {
header("Location: dashboard.php");
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP Login With Google</title>
<meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport' />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<br />
<h2 align="center">PHP Login With Google</h2>
<br />
<div class="panel panel-default">
<?php
echo '<div align="center">' . $google_login_btn . '</div>';
?>
</div>
</div>
</body>
</html>
5. Создайте файл dashboard.php
Затем вам нужно создать файл dashboard.php. В этом файле мы покажем информацию о зарегистрированном пользователе, такую как имя, адрес электронной почты, аватар и т. д.
Обновите приведенный ниже код в файле dashboard.php:
<?php
//Include Google Configuration File
include('gconfig.php');
if ($_SESSION['access_token'] == '') {
header("Location: index.php");
}
//This $_GET["code"] variable value received after user has login into their Google Account redirct to PHP script then this variable value has been received
if (isset($_GET["code"])) {
//It will Attempt to exchange a code for an valid authentication token.
$token = $google_client->fetchAccessTokenWithAuthCode($_GET["code"]);
//This condition will check there is any error occur during geting authentication token. If there is no any error occur then it will execute if block of code/
if (!isset($token['error'])) {
//Set the access token used for requests
$google_client->setAccessToken($token['access_token']);
//Store "access_token" value in $_SESSION variable for future use.
$_SESSION['access_token'] = $token['access_token'];
//Create Object of Google Service OAuth 2 class
$google_service = new Google_Service_Oauth2($google_client);
//Get user profile data from google
$data = $google_service->userinfo->get();
//Below you can find Get profile data and store into $_SESSION variable
if (!empty($data['given_name'])) {
$_SESSION['user_first_name'] = $data['given_name'];
}
if (!empty($data['family_name'])) {
$_SESSION['user_last_name'] = $data['family_name'];
}
if (!empty($data['email'])) {
$_SESSION['user_email_address'] = $data['email'];
}
if (!empty($data['gender'])) {
$_SESSION['user_gender'] = $data['gender'];
}
if (!empty($data['picture'])) {
$_SESSION['user_image'] = $data['picture'];
}
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP Login using Google Account</title>
<meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport' />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="card">
<div class="card-header">
You have Successfully Logged In With Google
</div>
<div class="card-body">
<h5 class="card-title"><?php echo $_SESSION['user_first_name'] . ' ' . $_SESSION['user_last_name'] ?></h5>
<p class="card-text">Email:- <?php echo $_SESSION['user_email_address']; ?> </p>
<img class="user-image" src="<?php echo $_SESSION["user_image"]; ?>" alt="Card image cap">
<a href="logout.php" class="btn btn-primary">Logout</a>
</div>
</div>
</div>
</body>
</html>
6. Создайте файл logout.php
Это последний шаг; вам необходимо создать файл logout.php. Когда пользователь нажимает кнопку выхода, пользователь перенаправляет этот файл, и сеанс пользователя уничтожается. И автоматически перенаправляет на страницу входа.
Обновите приведенный ниже код в файле logout.php:
<?php
include('gconfig.php');
//Reset OAuth access token
$google_client->revokeToken();
//Destroy entire session data.
session_destroy();
//redirect page to index.php
header('location:index.php');
?>
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.