2017 © Pedro PelΓ‘ez
 

yii2-extension yii2-oauth

Yii2 OAuth 2.0

image

phpnt/yii2-oauth

Yii2 OAuth 2.0

  • Monday, August 1, 2016
  • by phpnt
  • Repository
  • 1 Watchers
  • 1 Stars
  • 59 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

phpNT - OAuth 2.0

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

ОписаниС:

Авторизация Ρ‡Π΅Ρ€Π΅Π· сторонниС сСрвисы.

DEMO


Π‘ΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти:


Установка:, (*2)


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

ΠΈΠ»ΠΈ, (*3)

composer require phpnt/yii2-oauth "*"

ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² composer.json Ρ„Π°ΠΉΠ», (*4)

"phpnt/yii2-oauth": "*"

послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ, (*5)

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'
                ],
            ]
        ],
],

ΠΈΠ»ΠΈ, (*6)

// Π² Ρ„Π°ΠΉΠ»Π΅ настройки прилоТСния (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

The Versions

01/08 2016

dev-master

9999999-dev

Yii2 OAuth 2.0

  Sources   Download

MIT

The Requires

 

oauth yii2 authclient phpnt

01/08 2016

0.0.1

0.0.1.0

Yii2 OAuth 2.0

  Sources   Download

MIT

The Requires

 

oauth yii2 authclient phpnt