phpnt / yii2-oauth
Yii2 OAuth 2.0
0.0.1
2016-08-01 20:25 UTC
Requires
- php: >=5.4.0
- phpnt/bootstrap-notify: *
- yiisoft/yii2: *
- yiisoft/yii2-authclient: *
This package is auto-updated.
Last update: 2024-09-27 02:46:44 UTC
README
描述
通过第三方服务进行授权。
DEMO
社交网络
安装
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']]);