orbisnull / socialauther
SocialAuther is a PHP library to simplify the implementation of authentication for website through the popular social networks and services: vk.com, odnoklassniki.ru, mail.ru, yandex.ru, google.com. facebook.com. Based on https://github.com/stanislav-protasevich/SocialAuther
Installs: 763
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 45
pkg:composer/orbisnull/socialauther
Requires
- orbisnull/orbistools: dev-master
- orbisnull/twitterauth: dev-master
This package is not auto-updated.
Last update: 2025-10-25 18:57:33 UTC
README
SocialAuther - это PHP библиотека для упрощения реализации аутентификации на вашем сайте через популярные социальные сети и сервисы:
Заметка: в данном примере настройка осуществляется для локального сервера
Заметка: для работы библиотеки подключите автозагрузчик классов require_once 'lib/SocialAuther/autoload.php';
Использование
Аутентификация через ВКонтакте
Внимание! Если при переходе по ссылке авторизации, которую генериует метод $vkAdapter->getAuthUrl(), в качестве ответа выводится сооб щение {"error":"invalid_request","error_description":"Security Error"}, то вам необходимо отправиться на страницу настроек вашего vk аккаунта. В разделе "Безопасность Вашей страницы" нажмите ссылку "Посмотреть историю активности". В открывшемся окне нажмите "Завершить все сеансы", для очистки vk кэша. Таким образом, возникшая проблема security_error будет устранена.
Для осуществления аутентификации через социальную сеть ВКонтакте вам необходимо предварительно создать новый проект и сконфигурировать параметры: client_id, client_secret и redirect_uri:
- Шаг 1. Создание нового приложения:
- название: "SocialAuther Test"
- тип: "Веб-сайт"
 
- Шаг 2. Настройка секции "Open API":
- адрес сайта: http://localhost/auth?provider=vk
- базовый домен: "localhost"
 
- адрес сайта: 
- Шаг 3. Конфигурация параметров client_id,client_secretиredirect_uri:- client_id- содержится в опции "ID приложения". Пример:- 3078654
- client_secret- содержится в опции "Защищенный ключ". Пример:- zrCHcmKAcBvblSUIBIwu
- redirect_uri- содержится в опции "Адрес сайта". Пример:- http://localhost/auth?provider=vk
 
- Шаг 4. Использование SocialAuther.
Применение SocialAuther:
<?php
// конфигурация настроек адаптера
$vkAdapterConfig = array(
    'client_id'     => '3078654',
    'client_secret' => 'zrCHcmKAcBvblSUIBIwu',
    'redirect_uri'  => 'http://localhost/auth?provider=vk'
);
// создание адаптера и передача настроек
$vkAdapter = new SocialAuther\Adapter\Vk($vkAdapterConfig);
// передача адаптера в SocialAuther
$auther = new SocialAuther\SocialAuther($vkAdapter);
// аутентификация и вывод данных пользователя или вывод ссылки для аутентификации
if (!isset($_GET['code'])) {
	echo '<p><a href="' . $auther->getAuthUrl() . '">Аутентификация через ВКонтакте</a></p>';
} else {
	if ($auther->authenticate()) {
		if (!is_null($auther->getSocialId()))
			echo "Социальный ID пользователя: " . $auther->getSocialId() . '<br />';
		
		if (!is_null($auther->getName()))
			echo "Имя пользователя: " . $auther->getName() . '<br />';
		
		if (!is_null($auther->getEmail()))
			echo "Email пользователя: " . $auther->getEmail() . '<br />';
		
		if (!is_null($auther->getSocialPage()))
			echo "Ссылка на профиль пользователя: " . $auther->getSocialPage() . '<br />';
		if (!is_null($auther->getSex()))
			echo "Пол пользователя: " . $auther->getSex() . '<br />';
		if (!is_null($auther->getBirthday()))
			echo "День Рождения: " . $auther->getBirthday() . '<br />';
		// аватар пользователя 
		if (!is_null($auther->getAvatar()))
			echo '<img src="' . $auther->getAvatar() . '" />'; echo "<br />";
	}
}
Аутентификация через Одноклассники
Для осуществления аутентификации через социальную сеть Одноклассники вам необходимо предварительно создать новый проект и сконфигурировать параметры: client_id, client_secret, redirect_uri, public_key:
- Шаг 1. Создание нового приложения:
- Выбираем "Вне Одноклассников"
- Выбираем "oAuth авторизация"
 
- Шаг 2. Настройка приложения:
- название: "SocialAuther Test"
- shortname: _www.odnoklassniki.ru/game/auther
- ссылка на приложение: http://localhost/auth?provider=odnoklassniki
- "Ссылка на картинку" и "Ссылка на аватарку": ссылка на любое изображение
 
- Шаг 3. Конфигурация параметров client_id,client_secret,redirect_uri,public_key. Всю нужную информацию вы найдёте в письме, которое было отправлено на вашу электронную почту после успешного добавления приложения:- client_id- Application ID. Пример:- 658606315
- client_secret- секретный ключ приложения. Пример:- C35045020A8C7C066F25C4C7
- redirect_uri- ссылка на приложение. Пример:- http://localhost/auth?provider=odnoklassniki
- public_key- публичный ключ приложения. Пример:- BAMKABABACADCBBAB
 
- Шаг 4. Использование SocialAuther.
Применение SocialAuther:
<?php
$odnoklassnikiConfig = array(
    'client_id'     => '658606315',
    'client_secret' => 'C35045020A8C7C066F25C4C7',
    'redirect_uri'  => 'http://localhost/auth?provider=odnoklassniki',
    'public_key'    => 'BAMKABABACADCBBAB'
);
$odnoklassnikiAdapter = new SocialAuther\Adapter\Odnoklassniki($odnoklassnikiConfig);
$auther = new SocialAuther\SocialAuther($odnoklassnikiAdapter);
if (!isset($_GET['code'])) {
    echo '<p><a href="' . $auther->getAuthUrl() . '">Аутентификация через Одноклассники</a></p>';
} else {
    if ($auther->authenticate()) {
        if (!is_null($auther->getSocialId()))
            echo "Социальный ID пользователя: " . $auther->getSocialId() . '<br />';
        if (!is_null($auther->getName()))
            echo "Имя пользователя: " . $auther->getName() . '<br />';
        if (!is_null($auther->getEmail()))
            echo "Email пользователя: " . $auther->getEmail() . '<br />';
        if (!is_null($auther->getSocialPage()))
            echo "Ссылка на профиль пользователя: " . $auther->getSocialPage() . '<br />';
        if (!is_null($auther->getSex()))
            echo "Пол пользователя: " . $auther->getSex() . '<br />';
        if (!is_null($auther->getBirthday()))
            echo "День Рождения: " . $auther->getBirthday() . '<br />';
        // аватар пользователя
        if (!is_null($auther->getAvatar()))
            echo '<img src="' . $auther->getAvatar() . '" />'; echo "<br />";
    }
}
Аутентификация через Mail.ru
- Шаг 1. Создание нового приложения:
- соглашаемся с правилами
- название: "SocialAuther Test"
- адрес главной страницы: http://localhost/auth?provider=mailru
 
- Шаг 2. Настройка приложения:
- скачиваем предложенный файл receiver.html и помещаем в папку проекта
- для установки на локальный сервер, нажимаем "Пропустить"
 
- Шаг 3. Конфигурация параметров client_id,client_secret,redirect_uri:- client_id- ID. Пример:- 670707
- client_secret- секретный ключ. Пример:- a619062972f2073ded61405b8f8eccd2
- redirect_uri- адрес главной страницы. Пример:- http://localhost/auth?provider=mailru
 
- Шаг 4. Использование SocialAuther.
Применение SocialAuther:
<?php
$mailruAdapterConfig = array(
    'client_id'     => '670707',
    'client_secret' => 'a619062972f2073ded61405b8f8eccd2',
    'redirect_uri'  => 'http://localhost/auth?provider=mailru'
);
$mailruAdapter = new SocialAuther\Adapter\Mailru($mailruAdapterConfig);
$auther = new SocialAuther\SocialAuther($mailruAdapter);
if (!isset($_GET['code'])) {
    echo '<p><a href="' . $auther->getAuthUrl() . '">Аутентификация через Mail.ru</a></p>';
} else {
    if ($auther->authenticate()) {
        if (!is_null($auther->getSocialId()))
            echo "Социальный ID пользователя: " . $auther->getSocialId() . '<br />';
        if (!is_null($auther->getName()))
            echo "Имя пользователя: " . $auther->getName() . '<br />';
        if (!is_null($auther->getEmail()))
            echo "Email пользователя: " . $auther->getEmail() . '<br />';
        if (!is_null($auther->getSocialPage()))
            echo "Ссылка на профиль пользователя: " . $auther->getSocialPage() . '<br />';
        if (!is_null($auther->getSex()))
            echo "Пол пользователя: " . $auther->getSex() . '<br />';
        if (!is_null($auther->getBirthday()))
            echo "День Рождения: " . $auther->getBirthday() . '<br />';
        // аватар пользователя
        if (!is_null($auther->getAvatar()))
            echo '<img src="' . $auther->getAvatar() . '" />'; echo "<br />";
    }
}
Аутентификация через Yandex
- Шаг 1. Создание нового приложения:
- Шаг 2. Настройка приложения:
- Название: "SocialAuther Test"
- Права: "Яндекс.Логин - Адрес электронной почты; Дата рождения; Имя пользователя, ФИО, пол"
- Callback URI: http://localhost/auth?provider=yandex
 
- Шаг 3. Конфигурация параметров client_id,client_secret,redirect_uri:- client_id- Id приложения. Пример:- bff0bfcaef054ab66c0538b39e0a86cf
- client_secret- Пароль приложения. Пример:- 219ba88d386b114b9c6abef7eab4e8e4
- redirect_uri- Callback URI. Пример:- http://localhost/auth?provider=yandex
 
- Шаг 4. Использование SocialAuther.
Применение SocialAuther:
<?php
$yandexAdapterConfig = array(
    'client_id'     => 'bff0bfcaef054ab66c0538b39e0a86cf',
    'client_secret' => '219ba88d386b114b9c6abef7eab4e8e4',
    'redirect_uri'  => 'http://localhost/auth?provider=yandex'
);
$yandexAdapter = new SocialAuther\Adapter\Yandex($yandexAdapterConfig);
$auther = new SocialAuther\SocialAuther($yandexAdapter);
if (!isset($_GET['code'])) {
    echo '<p><a href="' . $auther->getAuthUrl() . '">Аутентификация через Yandex</a></p>';
} else {
    if ($auther->authenticate()) {
        if (!is_null($auther->getSocialId()))
            echo "Социальный ID пользователя: " . $auther->getSocialId() . '<br />';
        if (!is_null($auther->getName()))
            echo "Имя пользователя: " . $auther->getName() . '<br />';
        if (!is_null($auther->getEmail()))
            echo "Email пользователя: " . $auther->getEmail() . '<br />';
        if (!is_null($auther->getSocialPage()))
            echo "Ссылка на профиль пользователя: " . $auther->getSocialPage() . '<br />';
        if (!is_null($auther->getSex()))
            echo "Пол пользователя: " . $auther->getSex() . '<br />';
        if (!is_null($auther->getBirthday()))
            echo "День Рождения: " . $auther->getBirthday() . '<br />';
        // аватар пользователя
        if (!is_null($auther->getAvatar()))
            echo '<img src="' . $auther->getAvatar() . '" />'; echo "<br />";
    }
}
Аутентификация через Google
- Шаг 1. Создание нового приложения:
- в меню выбираем "API Access"
- нажимаем на кнопку "Create an OAuth 2.0 Client ID..."
 
- Шаг 2. Настройка приложения:
- API Access: "SocialAuther Test"
- Нажимаем Next
- Application Type: "Web application"
- Your site or hostname: localhost/google-auth
- Нажимаем Create client ID
 
- Шаг 3. Конфигурация параметров client_id,client_secret,redirect_uri:- client_id- Id приложения. Пример:- 333739311538.apps.googleusercontent.com
- client_secret- Пароль приложения. Пример:- lZB3aW8UG8gDj6WVIEIcidt5
- redirect_uri- Callback URI. Пример:- http://localhost/auth?provider=google
 
- Шаг 4. Использование SocialAuther.
Применение SocialAuther:
<?php
$googleAdapterConfig = array(
    'client_id'     => '393337311853.apps.googleusercontent.com',
    'client_secret' => 'B38WaUlZG8gDI6jIEWVct5id',
    'redirect_uri'  => 'http://localhost/auth?provider=google'
);
$googleAdapter = new SocialAuther\Adapter\Google($googleAdapterConfig);
$auther = new SocialAuther\SocialAuther($googleAdapter);
if (!isset($_GET['code'])) {
    echo '<p><a href="' . $auther->getAuthUrl() . '">Аутентификация через Google</a></p>';
} else {
    if ($auther->authenticate()) {
        if (!is_null($auther->getSocialId()))
            echo "Социальный ID пользователя: " . $auther->getSocialId() . '<br />';
        if (!is_null($auther->getName()))
            echo "Имя пользователя: " . $auther->getName() . '<br />';
        if (!is_null($auther->getEmail()))
            echo "Email пользователя: " . $auther->getEmail() . '<br />';
        if (!is_null($auther->getSocialPage()))
            echo "Ссылка на профиль пользователя: " . $auther->getSocialPage() . '<br />';
        if (!is_null($auther->getSex()))
            echo "Пол пользователя: " . $auther->getSex() . '<br />';
        if (!is_null($auther->getBirthday()))
            echo "День Рождения: " . $auther->getBirthday() . '<br />';
        // аватар пользователя
        if (!is_null($auther->getAvatar()))
            echo '<img src="' . $auther->getAvatar() . '" />'; echo "<br />";
    }
}
Аутентификация через Facebook
- Шаг 1. Создание нового приложения:
- Нажимаем на кнопку "+ Создать новое приложение"
- App Name: "SocialAuther Test"
- Нажимаем "Продолжить"
 
- Шаг 2. Настройка приложения:
- Нажимаем "Website with Facebook Login"
- Вводим Site URL: http://localhost/auth?provider=facebook
 
- Шаг 3. Конфигурация параметров client_id,client_secret,redirect_uri:- client_id- App ID. Пример:- 346158195993388
- client_secret- App Secret. Пример:- 2de1ab376d1c17cd47250920c05ab386
- redirect_uri- Callback URI. Пример:- http://localhost/auth?provider=facebook
 
- Шаг 4. Использование SocialAuther.
Применение SocialAuther:
<?php
$facebookAdapterConfig = array(
    'client_id'     => '346158195993388',
    'client_secret' => '2de1ab376d1c17cd47250920c05ab386',
    'redirect_uri'  => 'http://localhost/auth?provider=facebook'
);
$facebookAdapter = new SocialAuther\Adapter\Facebook($facebookAdapterConfig);
$auther = new SocialAuther\SocialAuther($facebookAdapter);
if (!isset($_GET['code'])) {
    echo '<p><a href="' . $auther->getAuthUrl() . '">Аутентификация через Facebook</a></p>';
} else {
    if ($auther->authenticate()) {
        if (!is_null($auther->getSocialId()))
            echo "Социальный ID пользователя: " . $auther->getSocialId() . '<br />';
        if (!is_null($auther->getName()))
            echo "Имя пользователя: " . $auther->getName() . '<br />';
        if (!is_null($auther->getEmail()))
            echo "Email пользователя: " . $auther->getEmail() . '<br />';
        if (!is_null($auther->getSocialPage()))
            echo "Ссылка на профиль пользователя: " . $auther->getSocialPage() . '<br />';
        if (!is_null($auther->getSex()))
            echo "Пол пользователя: " . $auther->getSex() . '<br />';
        if (!is_null($auther->getBirthday()))
            echo "День Рождения: " . $auther->getBirthday() . '<br />';
        // аватар пользователя
        if (!is_null($auther->getAvatar()))
            echo '<img src="' . $auther->getAvatar() . '" />'; echo "<br />";
    }
}
Использование SocialAuther с несколькими социальными сетями и сервисами
<?php
$adapterConfigs = array(
    'vk' => array(
        'client_id'     => '3078654',
        'client_secret' => 'zrCHcmKAcBvblSUIBIwu',
        'redirect_uri'  => 'http://localhost/auth/?provider=vk'
    ),
    'odnoklassniki' => array(
        'client_id'     => '658606315',
        'client_secret' => 'C35045020A8C7C066F25C4C7',
        'redirect_uri'  => 'http://localhost/auth?provider=odnoklassniki',
        'public_key'    => 'BAMKABABACADCBBAB'
    ),
    'mailru' => array(
        'client_id'     => '670707',
        'client_secret' => 'a619062972f2073ded61405b8f8eccd2',
        'redirect_uri'  => 'http://localhost/auth/?provider=mailru'
    ),
    'yandex' => array(
        'client_id'     => 'bff0bfcaef054ab66c0538b39e0a86cf',
        'client_secret' => '219ba88d386b114b9c6abef7eab4e8e4',
        'redirect_uri'  => 'http://localhost/auth/?provider=yandex'
    ),
    'google' => array(
        'client_id'     => '393337311853.apps.googleusercontent.com',
        'client_secret' => 'B38WaUlZG8gDI6jIEWVct5id',
        'redirect_uri'  => 'http://localhost/auth?provider=google'
    ),
    'facebook' => array(
        'client_id'     => '346158195993388',
        'client_secret' => '2de1ab376d1c17cd47250920c05ab386',
        'redirect_uri'  => 'http://localhost/auth?provider=facebook'
    )
);
// создание адаптеров
$adapters = array();
foreach ($adapterConfigs as $adapter => $settings) {
    $class = 'SocialAuther\Adapter\\' . ucfirst($adapter);
    $adapters[$adapter] = new $class($settings);
}
if (!isset($_GET['code'])) {
    foreach ($adapters as $title => $adapter) {
        echo '<p><a href="' . $adapter->getAuthUrl() . '">Аутентификация через ' . ucfirst($title) . '</a></p>';
    }
} else {
    if (isset($_GET['provider']) && array_key_exists($_GET['provider'], $adapters)) {
        $auther = new SocialAuther\SocialAuther($adapters[$_GET['provider']]);
    }
    if ($auther->authenticate()) {
        if (!is_null($auther->getSocialId()))
            echo "Социальный ID пользователя: " . $auther->getSocialId() . '<br />';
        if (!is_null($auther->getName()))
            echo "Имя пользователя: " . $auther->getName() . '<br />';
        if (!is_null($auther->getEmail()))
            echo "Email пользователя: " . $auther->getEmail() . '<br />';
        if (!is_null($auther->getSocialPage()))
            echo "Ссылка на профиль пользователя: " . $auther->getSocialPage() . '<br />';
        if (!is_null($auther->getSex()))
            echo "Пол пользователя: " . $auther->getSex() . '<br />';
        if (!is_null($auther->getBirthday()))
            echo "День Рождения: " . $auther->getBirthday() . '<br />';
        // аватар пользователя
        if (!is_null($auther->getAvatar()))
            echo '<img src="' . $auther->getAvatar() . '" />'; echo "<br />";
    }
}