PHP code example of phpnt / yii2-oauth

1. Go to this page and download the library: Download phpnt/yii2-oauth library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

phpnt / yii2-oauth example snippets


// в файле настройки приложения (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' => '---',
                ],
                ...
            ]
        ],
],

use phpnt\oAuth\AuthChoice;

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

php composer.phar