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

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

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

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

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

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

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

PHP

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

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

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

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

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

Код
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']);  
  }  

HTML  

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

<!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>



Источник:
Загрузка данных...
Скачать
Комментарии (0)
Чтобы оставить комментарий под этой публикацией,
зарегистрируйтесь или войдите.