celebron/yii2-oauth2-social

Maintainers

👁 celebron

Package info

hub.mos.ru/celebron.ru/Yii2-oauth2-social.git

Issues

Forum

Type:yii2-extension

pkg:composer/celebron/yii2-oauth2-social

Statistics

Installs: 37

Dependents: 0

Suggesters: 0

2.0.2 2023-08-19 10:26 UTC

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause 8631d3d2cd7c5ac4d4183b973931c68e69aa98d7

extensionyii2celebron

This package is auto-updated.

Last update: 2026-06-29 02:13:44 UTC


README

👁 Image

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-function
    function($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