phpnt/yii2-oauth

Yii2 OAuth 2.0

Installs: 95

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 2

Forks: 0

Open Issues: 0

Type:yii2-extension

0.0.1 2016-08-01 20:25 UTC

This package is auto-updated.

Last update: 2024-04-27 01:36:11 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Описание:

Авторизация через сторонние сервисы.

DEMO

Donate button

Социальные сети:

Установка:

php composer.phar require "phpnt/yii2-oauth" "*"

или

composer require phpnt/yii2-oauth "*"

или добавить в composer.json файл

"phpnt/yii2-oauth": "*"

после загрузки, выполнить миграцию

yii migrate --migrationPath=@vendor/phpnt/yii2-oauth/migrations

Использование:

Подключение:

// в файле настройки приложения (main.php - Advanced или web.php - Basic) 
// в controllerMap
...
'controllerMap' => [
        'auth' => [
            'class'         => 'phpnt\oAuth\controllers\AuthController',
            'modelUser'     => 'app\models\User'  // путь к модели User      
        ],
    ],
/**
* В components добавляем компонент authClientCollection
* если в модели app\models\User имеются следующие поля:
*      email       - эл. почта
*      first_name  - имя
*      last_name   - фамилия
*      avatar      - путь к изображению
*      gender      - пол (женский - 1, мужской - 2)
*      status      - статус пользователя (0 - не активированный, 1 - активированный (используется только этот параметр, 2 - заблокированный))
* можно передавать минимальные параметры
*/
'components' => [
    ...
    'authClientCollection' => [
            'class' => 'yii\authclient\Collection',
            'clients' => [
                'google' => [
                    // https://console.developers.google.com/project
                    'class' => 'phpnt\oAuth\oauth\Google',
                    'clientId' => '---',
                    'clientSecret' => '---',
                ],
                'yandex' => [
                    // https://oauth.yandex.ru/client/new
                    'class' => 'phpnt\oAuth\oauth\Yandex',
                    'clientId' => '---',
                    'clientSecret' => '---',
                ],
                'facebook' => [
                    // https://developers.facebook.com/apps
                    'class'         => 'phpnt\oAuth\oauth\Facebook',
                    'clientId'      => '---',
                    'clientSecret'  => '---',
                ],
                'vkontakte' => [
                    // https://vk.com/editapp?act=create
                    'class'         => 'phpnt\oAuth\oauth\VKontakte',
                    'clientId'      => '---',
                    'clientSecret'  => '---',
                ],
                'twitter' => [
                    // https://dev.twitter.com/apps/new
                    'class' => 'phpnt\oAuth\oauth\Twitter',
                    'consumerKey' => '---',
                    'consumerSecret' => '---',
                ],
                'linkedin' => [
                    // https://www.linkedin.com/developer/apps/
                    'class' => 'phpnt\oAuth\oauth\LinkedIn',
                    'clientId' => '---',
                    'clientSecret' => '---',
                ],
                'github' => [
                    // https://github.com/settings/applications/new
                    'class' => 'phpnt\oAuth\oauth\GitHub',
                    'clientId' => '---',
                    'clientSecret' => '---',
                    'scope' => 'user:email, user'
                ],
            ]
        ],
],

или

// в файле настройки приложения (main.php - Advanced или web.php - Basic) 
// в controllerMap
...
'controllerMap' => [
        'auth' => [
            'class'         => 'phpnt\oAuth\controllers\AuthController',
            'modelUser'     => 'app\models\User'  // путь к модели User      
        ],
    ],
/**
* В components добавляем компонент authClientCollection
* если в модели app\models\User поля не совпадают с полями по умолчанию, указываем их вручную с доп. параметрами:
*/
'components' => [
    ...
    'authClientCollection' => [
            'class' => 'yii\authclient\Collection',
            'clients' => [
                'google' => [
                    // https://console.developers.google.com/project
                    'class' => 'phpnt\oAuth\oauth\Google',
                    'email'         => 'email_field_in_User',
                    'first_name'    => 'first_name_field_in_User',
                    'last_name'     => 'last_name_field_in_User',
                    /* Поле для изображения пользователя */
                    'avatar'        => 'avatar_field_in_User',
                    /* Поле пол и значение М/Ж */
                    'gender'        => 'gender_field_in_User',
                    'female'        => 2,       // значение для женского пола
                    'male'          => 1,       // значение для мужского пола
                    /* Поле статус и значение активного пользователя */
                    'status'        => 'status_field_in_User',
                    'statusActive'  => 1,       // значение для активного пользователя
                    'clientId' => '---',
                    'clientSecret' => '---',
                ],
                ...
            ]
        ],
],

В представлении, где нужна авторизация OAuth 2.0 добавляем:

use phpnt\oAuth\AuthChoice;

// виджет, выводит список сервисов, с помощью которых возможно авторизоваться
echo AuthChoice::widget(['baseAuthUrl' => ['/auth/index']]);

Документация (примеры):

AuthClient Extension for Yii 2

OAuth 2.0

Версия:

0.0.1

Лицензия:

MIT