—»     —»   Авторизация посредством Google+ OAuth
  Раздел: Скрипты и коды   Комментариев: 4  

Авторизация посредством Google+ OAuth



Пару дней назад Google+ представили новое приложение интерфейса программирования OAuth. На данный момент приложение предоставляет только возможность работы с активностью пользователей и данными кругов. Мы разработали простенькую систему авторизации. Попробуйте! Чем-то похоже на систему авторизации Twitter. Надеемся, что в будущем Google+ предоставят нам гораздо больше опций.

Авторизация посредством Google+ OAuth

Скачать скрипт | Посмотреть демо
Внимание! У вас нет прав для просмотра скрытого текста.


Этап 1

Авторизация посредством Google+ OAuth

Добавьте или зарегистрируйте свой домен и кликните здесь.

Этап 2

Авторизация посредством Google+ OAuth

Подтвердите то, что вы владеете доменом посредством загрузки HTML-файла или внедрения мета-тега.

Этап 3

Авторизация посредством Google+ OAuth

Google предоставит вам код клиента OAuth, а также секретный код.

Этап 4

Авторизация посредством Google+ OAuth

Создайте ID клиента в OAuth Console.

Этап 5

Авторизация посредством Google+ OAuth

Создайте ID клиента.

Этап 6

Авторизация посредством Google+ OAuth

Здесь у нас ID клиента в приложении OAuth, а также секретный код клиента.

Config.php

Здесь вам нужно настроить ключи приложения OAuth, а также ключи клиента.

// OAuth2 Settings, you can get these keys at https://code.google.com/apis/console Step 6 keys 
'oauth2_client_id' => 'App Client ID',
'oauth2_client_secret' => 'App Client Secret',
'oauth2_redirect_uri' => 'http://yoursite.com/gplus/index.php',

// OAuth1 Settings Step 3 keys.
'oauth_consumer_key' => 'OAuth Consumer Key',
'oauth_consumer_secret' => 'OAuth Consumer Secret',

gplus_login.php

Система авторизации Google+.

<?php
require_once 'src/apiClient.php';
require_once 'src/contrib/apiPlusService.php';
session_start();
$client = new apiClient();
$client->setApplicationName("9lessons Google+ Login Application");
$client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
$plus = new apiPlusService($client);
if (isset($_REQUEST['logout']))
{
unset($_SESSION['access_token']);
}

if (isset($_GET['code']))
{
$client->authenticate();
$_SESSION['access_token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}

if (isset($_SESSION['access_token']))
{
$client->setAccessToken($_SESSION['access_token']);
}

if ($client->getAccessToken())
{
$me = $plus->people->get('me');
$_SESSION['access_token'] = $client->getAccessToken();
}
else
$authUrl = $client->createAuthUrl();

if(isset($me))
{
$_SESSION['gplusdata']=$me;
header("location: home.php");
}

if(isset($authUrl))
print "<a class='login' href='$authUrl'>Google Plus Login </a>";
else
print "<a class='logout' href='index.php?logout'>Logout</a>";
?>

Home.php

Содержит PHP-код, который вносит данные о сессии Google+ в таблицу пользователей.

<?php
session_start();
if (!isset($_SESSION['gplusdata']))
{
// Redirection to home page
header("location: index.php");
}
else
{
$me=$_SESSION['gplusdata'];
echo "<img src='$me['image']['url']; ' />";
echo "Name: $me['displayName']; ";
echo "Gplus Id: $me['id']";
echo "Male: $me['gender']";
echo "Relationship: $me['relationshipStatus']";
echo "Location: $me['placesLived'][0]['value']";
echo "Tagline: $me['tagline'];
print "<a class='logout' href='index.php?logout'>Logout</a> ";
}
?>
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: Google Plus
Опубликовал Design FactoRy   Прочитано (раз): 15143   |   Оставлено комментариев: 4
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Комментарий #1: 2 февраля 2012 @ 20:42
Написал: Василий — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Очень познавательная информация! С приведением кодов, супер!
Комментарий #2: 2 марта 2012 @ 16:32
Написал: BOris — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Сначала выдало ошибку, что не может отправить куки, но ссылка появилась, а=нажал на ссылку авторизации, спросило разрешение и отправило меня на весьма интереный адрес:
https://www.dnevniki.anomal.ru/oauth2callback?code=4/Fpgkj1-LYDHGRM34MQgxoT6c6PP
J
Вообще у мня протокол HTTP Но не HTTPS. Естествено, вышкла ошибка на странице :
Internal Server Error
Что делать?
спасибо.

Подправил ам, теперь вылезла такая ошибка

atal error: Uncaught exception 'apiAuthException' with message 'Invalid token format' in /var/www/kuz/data/www/dnevniki.anomal.ru/src/auth/apiOAuth2.php:108 Stack trace: #0 /var/www/kuz/data/www/dnevniki.anomal.ru/src/auth/apiOAuth2.php(74): apiOAuth2->setAccessToken('{? "access_tok...') #1 /var/www/kuz/data/www/dnevniki.anomal.ru/src/apiClient.php(130): apiOAuth2->authenticate(Array) #2 /var/www/kuz/data/www/dnevniki.anomal.ru/gplus_login.php(32): apiClient->authenticate() #3 /var/www/kuz/data/www/dnevniki.anomal.ru/index.php(1): include('/var/www/kuz/da...') #4 {main} thrown in /var/www/kuz/data/www/dnevniki.anomal.ru/src/auth/apiOAuth2.php on line 108
Комментарий #3: 3 апреля 2012 @ 21:20
Написал: cybergod — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
В демо после авторизации не выводит данные в установленном скрипте тоже. Почему?
Комментарий #4: 17 февраля 2013 @ 21:55
Написал: vov41k — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Здравствуйте.

Для OAuth 2.0 будет?
Так как 1.0 давно не работает.
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Национальная денежная единица США
Подтверждение кода безопасности :

Включите эту картинку для отображения кода безопасности
обновить, если не виден код


Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Сентябрь 2017    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930