Регистрация на сайте через Google

22012-08-0944732Денис Абдуллин

Знали ли Вы, что используя Google, можно сделать на своем сайте регистрацию на сайте в один клик? Каждый, у кого есть аккаунт в Google, может просто нажать на кнопку, а скрипт автоматически загрузит в приложение e-mail, имя и фотографию.
Используя этот вариант входа/регистрации, вы создадите удобство для пользователей. Вот некоторые из преимуществ:

Не нужно делать проверку формы входа, и вообще создавать форму;

Нет необходимости в функции «Забыл пароль»;

E-Mail адресы уже подтверждены Google, поэтому вам не нужно высылать подтверждение.

Конечно, это будет работать, только если у человека есть аккаунт Google, поэтому имеет смысл сделать что-то в дополнение к этой системе регистрации.

Настройка приложения

Первый шаг заключается в создании приложения через консоль Google API. Следуйте инструкциям для получения дополнительной информации. После завершения процесса, разместить полученные ключи в setup.php.
Запуск кода из schema.sql (вы можете найти его в архиве скачать) в PhpMyAdmin или ином административном MySQL инструменте. Это создаст glogin_users таблицу в базе данных, которая будет использоваться для хранения информации об учетных записях пользователей вашего приложения. После этого, напишите свои данные подключения к базе данных в setup.php.

google вход, авторизация через google, регистрация через google

PHP

Для чтения и вставки в базу данных используется библиотека Idiorm. Будем создавать следующие PHP страницы:

index.php – главный файл приложения;

setup.php – соединение с базой данных и ключи выданные Google;

Папки библиотеки Idiorm, PHP библиотеки Google.

Давайте взглянем на код первой части index.php:

Code
require 'setup.php';

// Create a new Google API client
$client = new apiClient();
//$client->setApplicationName("Tutorialzine");

// Configure it
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setDeveloperKey($api_key);
$client->setRedirectUri($redirect_url);
$client->setApprovalPrompt(false);
$oauth2 = new apiOauth2Service($client);

// The code parameter signifies that this is
// a redirect from google, bearing a temporary code
if (isset($_GET['code'])) {

  // This method will obtain the actuall access token from Google,
  // so we can request user info
  $client->authenticate();

  // Get the user data
  $info = $oauth2->userinfo->get();

  // Find this person in the database
  $person = ORM::for_table('glogin_users')->where('email', $info['email'])->find_one();

  if(!$person){
  // No such person was found. Register!

  $person = ORM::for_table('glogin_users')->create();

  // Set the properties that are to be inserted in the db
  $person->email = $info['email'];
  $person->name = $info['name'];

  if(isset($info['picture'])){
  // If the user has set a public google account photo
  $person->photo = $info['picture'];
  }
  else{
  // otherwise use the default
  $person->photo = 'assets/img/default_avatar.jpg';
  }

  // insert the record to the database
  $person->save();
  }

  // Save the user id to the session
  $_SESSION['user_id'] = $person->id();

  // Redirect to the base demo URL
  header("Location: $redirect_url");
  exit;
}

// Handle logout
if (isset($_GET['logout'])) {
  unset($_SESSION['user_id']);
}

$person = null;
if(isset($_SESSION['user_id'])){
  // Fetch the person from the database
  $person = ORM::for_table('glogin_users')->find_one($_SESSION['user_id']);
}

google вход, авторизация через google, регистрация через google

HTML

Код HTML занимает нижнюю половину страницы index.php. После авторизации через Google сюда мы сможем выводить данные о пользователе. Сама страница является стандартным документом HTML5.


Code
<!DOCTYPE html>
<html>
  <head>
  <meta charset="utf-8" />
  <title>Google Powered Login Form | Tutorialzine Demo</title>

  <!-- The stylesheets -->
  <link rel="stylesheet" href="assets/css/styles.css" />
  <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700" />

  <!--[if lt IE 9]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
  </head>

  <body>

  <h1>Login Form</h1>
  <div id="main">

  <?php if($person):?>
  <div id="avatar" style="background-image:url(<?php echo $person->photo?>?sz=58)"></div>
  <p class="greeting">Welcome, <b><?php echo htmlspecialchars($person->name)?></b></p>
  <p class="register_info">You registered <b><?php echo new RelativeTime($person->registered)?></b></p>
  <a href="?logout" class="logoutButton">Logout</a>
  <?php else:?>
  <a href="<?php echo $client->createAuthUrl()?>" class="googleLoginButton">Sign in with Google</a>
  <?php endif;?>

  </div>

  </body>
</html>

Скачайте пример авторизации по ссылке ниже.


Создать сайт в uKit Нужен классный сайт для бизнеса?
Воспользуйтесь сервисом uKit. Никакого кода!
Чтобы оставить комментарий или отзыв под этой публикацией, войдите или зарегистрируйтесь.