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
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.