PHP

Авторизация с помощью Google-аккаунта

Мы разработали систему быстрой авторизации с помощью 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-аккаунта даст вашему ресурсу больше пользователей и они буду возвращаться к вам снова и снова. Надеемся, что материал в этой статье стал действительно полезен для вас, ведь поставить такую функцию себе на сайт также просто, как и взять кредит.
Прошу также оставить комментарии к статье и оставить пожелания к темам будущих постов.
Теги:
oauth, provider, google, define, login, SESSIONS, Google, mysql, VARCHAR, авторизации, SERVER, dbconfig, username, USERNAME, index, getGoogleData, пользователей, снова, статье, также, оставить, logout, header, DATABASE, error, просто, PASSWORD, yourdomain, TABLE, помощью, регистрации, аккаунта, email, скрипт, Email
Добавлено: 20 Августа 2013 01:26:05 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...