celebron / yii2-oauth2-social
Installs: 37
Dependents: 0
Suggesters: 0
Security: 0
Type:yii2-extension
pkg:composer/celebron/yii2-oauth2-social
Requires
- php: ^8.2
 - celebron/yii2-celebron-common: ^1.2
 - yiisoft/http: ^1.2
 - yiisoft/yii2: ^2.0
 - yiisoft/yii2-bootstrap5: ^2.0
 - yiisoft/yii2-httpclient: ^2.0
 
Requires (Dev)
- roave/security-advisories: dev-latest
 
This package is auto-updated.
Last update: 2025-10-29 03:39:49 UTC
README
Celebron Social Extension for Yii 2
This extension provides the HTTP client for the Yii framework 2.0.
Installation
composer require celebron/yii2-oauth2-social
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, как приведено в примере; - в компоненте 
socialустановить переменную$socialsсписок всех соц. сетей по правиламYii::createObject(); - реализовать интерфейс 
SocialUserInterfaceиIdentityInterfaceи подключить к компонентуuser;- подключить трейт 
UserManagementTrait(по необходимости). 
 - подключить трейт 
 
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            - список всех соц. сетей (Правило формирования \Yii::createObject())
  [optional] \Closure|null $paramsHandler      - настройка $params в Social классах
- В массиве 
$socialsключ можно опускать, тогда при регистрации ключом будет имя класса. - Если класс реализует интерфейс 
CustomRequestInterface, то ключ обязателен (выдаст исключение) - Если 
$paramsGroupустановлен, то настройкиclientIdиclientSecretмогут браться из \Yii::$app->params[$paramsGroup][{socialName}] - Если 
$paramsHandlerустановлен, то настройкиclientIdиclientSecretмогут браться из callback-functionfunction($socialName):array { /** @var Configure $this */ } 
Классы авторизации
OAuth2::class (Google::class, Yandex::class, ...)
namespace Celebron\socials
[optional] bool     $activate (false)    - активировать механизм
[optional] string   $name                - название для Widget
[optional] string   $icon                - иконка для Widget
[optional] bool     $visible             - отображение для Widget
[required|optional] $clientId (null)     - OAuth clientId
[required|optional] $clientSecret (null) - OAuth clientSecret
Если $clientId и $clientSecret не определены, то будут использоваться параметры
$params['clientId'] и $params['clientSecret'] соответственно, в противном случае будет вызвано исключение.
Зависит от настроек Configure::$paramsGroup и Configure::$paramsHandler
Ссылка redirect в консолях соц. сетей (oauth2 и прочее)
https://сайт.ru/{route}/{social}
Легенда
{social} - название социальной сети (google, yandex и т.п.). Индекс массива Сonfigutation::$socials.
{route}  - Настройка в классе Configuration