Библиотека на основе Zend Framework 1.12 для аутентификации через OAuth
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
application
library
public
LICENSE
README.md

README.md

Библиотека для аутентификации через социальные сети посредством протокола OAuth

Библиотека реализует авторизацию через OAuth 1-й и 2-й версий

Демонстрация

Поддерживаемые адаптеры

  • Google
  • Яндекс
  • Mail.ru (Мой мир)
  • Одноклассники
  • Twitter
  • Facebook
  • Vk.com (ВКонтакте)
  • GitHub
  • LinkedIn
  • Instagram

Установка и настройка

1. Скопируйте файлы дистрибутива в директорию вашего виртуального сервера. Структура папок дистрибутива соответствует проекту "по умолчанию" ZendFramework.

2. Установите файлы ZendFramework 1.12 в директорию /library/Zend

3. Внесите изменения в файл /application/configs/application.xml в секцию ouath.

Необходимо зарегистрировать свое приложение и получить ключи для авторизации на сайтах подсети и на основании полученных данных сконфигурировать адаптеры. В качестве callback_uri/redirect_url по умолчанию используется адрес вида http(s)://адрес_сайта/callback/идентификатор_сети.

Конфигурация адаптеров

Сеть Идентификатор Url регистрации приложения Подсекция key Подсекция secret Подсекция appkey
Google+ google Click me Client ID Client secret
Яндекс yandex Click me Id приложения Пароль приложения
Mail.ru mailru Click me ID Секретный ключ
VK.com vk Click me ID приложения Защищенный ключ
Twitter twitter Click me Consumer key Consumer secret
GitHub github Click me Client ID Client secret
LinkedIn linkedin Click me Ключ API Секретный ключ
Одноклассники odnoklassniki Click me Application ID Секретный ключ приложения Публичный ключ приложения
Facebook facebook Click me App ID/API Key Секрет приложения
Instagram instagram Click me CLIENT ID CLIENT SECRET

Логика работы приложения

Основным контроллером работы приложения является IndexController, вы можете использовать любой другой контроллер или вообще любой PHP-скрипт. Важно регистрировать в соцсетях правильный callback_uri.

При запроса requestAction происходит формирование Url и передаресация на сервер социальной сети. Пользователь авторизуется на сайте соцсети и разрешает вашему приложению получить свои пользовательские данные. Социальная сеть возвращает пользователя по callback_uri на ваш callbackAction, в котором уже по предоставленным ключам запрашивается информация о пользователе с сервера соцсети. Полученные данные заносятся в сессию и происходит переадресация на indexAction.

Получение данных о пользователе

Данные об аутентифицированном пользователе доступны в контроллере в indexAction в виде массива в объекте пользовательской сессии $this->_session->userinfo и представляют собой следующую структуру:

Array
(
    [provider] => название сервиса (google, yandex и пр.)
    [userid] => id пользователя в сервисе
    [username] => имя пользователя в сервисе
    [gender] => пол (male,female) (по умолчанию null)
    [email] => основной email пользователя (если неизвестно, то userid@домен_сервиса)
    [locale] => локаль пользователя (по умолчанию null)
    [firstname] => имя пользователя (по умолчанию null)
    [lastname] => фамилия пользователя (по умолчанию null)
    [link] => ссылка на профиль пользователя на сервере сервиса (по умолчанию null)
    [avatar] => адрес аватара на сервере сервиса (по умолчанию null)
)

Работа с адаптерами напрямую

Пример работы с конкретным адаптером напрямую из PHP-приложения без использования MVC-компонент ZendFramework приведен в файле public/facebook.php