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