Мы разработали систему быстрой авторизации с помощью Google- аккаунта, используя OpenID. Этот скрипт позволит вам обойтись без форм регистрации, авторизации и проверки имейлов.
База Данных:
Вы сможете использовать и свою БД, но если пишете проект с нуля, то лучше бы она имела следующий вид:
CREATE TABLE users(
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(70),
oauth_uid int(11),
oauth_provider VARCHAR(100),
username VARCHAR(100)
);
Структура каталога выглядит так:
google-open // конфиг библиотеки Google LightOpenID
-- functions.php
-- dbconfig.php // настройки бд
index.php
home.php
getGoogleData.php // коллбэк
login-google.php
dbconfig.php
Конфигурация базы данных.
<?php
define('DB_SERVER', 'сервер');
define('DB_USERNAME', 'имя_пользователя');
define('DB_PASSWORD', 'пароль');
define('DB_DATABASE', 'имя_бд');
define('USERS_TABLE_NAME', 'табляца_пользователей'); // ваша таблица пользователей
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error());
$database = mysql_select_db(DB_DATABASE) or die(mysql_error());
?>
login-google.php
В файле login-google.php найдите следующую строку и измените 'yourdomain.com' на урл вашего проекта.
define('CALLBACK_URL', 'http://yourdomain.com/getGoogleData.php');
index.php
Если вы хотите модифицировать в вашем проекте существующие страницы авторизации и регистрации, просто используйте следующий код.
<?php
session_start();
if (isset($_SESSION['id'])) {
// Перенаправление на домашнюю страницу если пользователь уже авторизирован
header("location: home.php");
}
if (array_key_exists("login", $_GET)) {
$oauth_provider = $_GET['oauth_provider'];
if ($oauth_provider == 'google'){
header("Location: login-google.php");
}
}
?>
//HTML
<a href="?login&oauth_provider=google">Google Login</a>
home.php
В главной странице можно отображать информацию о пользователях, обращаясь к переменным сессии.
Name: <?php $_SESSIONS['username'] >
Email: <?php $_SESSIONS['email'] >
Вы вошли как: <?php $_SESSIONS['oauth_provider'] >
<a href="logout.php?logout">Logout</a> from <?php $_SESSIONS['oauth_provider'] >
Если возникнут вопросы - оставляйте их в комментариях. Удачки!
Так же вы можете почитать статью про Cookie в PHP
Мы будем очень рады. если авторизация с помощью Google-аккаунта даст вашему ресурсу больше пользователей и они буду возвращаться к вам снова и снова. Надеемся, что материал в этой статье стал действительно полезен для вас, ведь поставить такую функцию себе на сайт также просто, как и взять кредит.
Прошу также оставить комментарии к статье и оставить пожелания к темам будущих постов.