Celebron Social Extension for Yii 2
This extension provides the HTTP client for the Yii framework 2.0.
Installation
Configuration
Редактируем файл frontend/config/main.php
, пример:
...,
'bootstrap' => [..., 'social' ],
'components'=>[
'user' => [
'identityClass' => \common\models\User::class,
...
],
'social' => [
'class' => Celebron\socialSource\Configuration::class,
'socials' => [
[
'class' => Yandex::class, //Google::class и т.д.
'active' => true,
'clientId' => '...',
'clientSecret' => '...,
],
...
],
],
],
...
Необходимо:
- подключить компонент
Configuration::class
вbootstrap
, как приведено в примере - реализовать интерфейс
SocialUserInterface
иIdentityInterface
и подключить к компонентуuser
-
подключить трейт
UserManagementTrait
к классу реализующийSocialUserInterface
(по необходимости)[[Configuration::class]]
[optional] string $route (‘social’) - роут для OAuth redirect path
[optional] string|null $paramsGroup (null) - ключ массива с настройками в \Yii::$app->params (null - не использовать) [optional] array $socialEvents - массив событий [‘название-события’ => \Closure] [required] Social[] $socials - список всех соц. сетей ([ ’social" => AuthBase::class ]) [optional] null|Closure|ArrayAccess $paramsHandler - настройка $params в Social классах
В массиве $socials
ключ можно опускать, тогда при регистрации ключом будет имя класса или атрибут класса SocialName
Если указан $paramsGroup
- тогда можно в настройках socials опускать $clientId
и $clientSecret
Классы авторизации
OAuth2::class (Google::class, Yandex::class, …)
namespace Celebron\socials
[optional] bool $activate (false) - активировать механизм
[optional] string $name - название для Widget
[optional] $icon - иконка для Widget
[optional] $visible - отображение для Widget
[required|optional] $clientId (null) - OAuth clientId
[required|optional] $clientSecret (null) - OAuth clientSecret
Если $clientId
и $clientSecret
null, то будут использоваться параметры $params['clientId']
и $params['clientSecret']
соответственно. В противном случае будет вызвано исключение.
Ссылка redirect в консолях соц.сетей (oauth2 и прочее)
https://сайт.ru/{route}/{social}
Легенда
{social} - название социальной сети (google, yandex и т.п.). Индекс массива $socials [[SocialConfiguration]]
{route} - Настройка в классе Configuration
{paramsGroup} - Настройка в классе Configuration