lowbase/yii2-user
Composer 安装命令:
composer require lowbase/yii2-user
包简介
Yii2 user module
关键字:
README 文档
README
Yii2-user - независимый модуль из комплекта lowBase с панелью администрирования и полным функционалом возможностей.
- Авторизация и регистрация по Email (с подтверждением)
- Авторизация и регистрация через социальные сети
- Восстановление пароля через Email
- Максимально полный профиль пользователя
- Администрирование пользователей и расширенный поиск по параметрам
- Страны и города (База Вконтакте) и привязка профиля к ним
- Разделение ролей и управление ими с помощью системы допусков, наследования и правил
- Виджеты авторизации, фиксирования Online, привязка профиля к социальным сетям (для последующего входа)
- Поддержка мультиязычности
- Поддержка кастомных отображений и шаблонов писем без наследований
Установка
php composer.phar require --prefer-dist lowbase/yii2-user "*"
или
"lowbase/yii2-user": "*"
Настройка конфигурационного файла
//-----------------------
// Компонент пользователя
//-----------------------
'user' => [
'identityClass' => 'lowbase\user\models\User',
'enableAutoLogin' => true,
'loginUrl' => ['/login'],
'on afterLogin' => function($event) {
lowbase\user\models\User::afterLogin($event->identity->id);
}
],
//--------------------------------------------------------
// Компонент OAUTH для авторизации через социальные сети,
// где вмето ? указываем полученные после регистрации
// клиентский ID и секретный ключ.
// В комментария указаны ссылки для регистрации приложений
// в соответствующих социальных сетях.
//--------------------------------------------------------
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'vkontakte' => [
// https://vk.com/editapp?act=create
'class' => 'lowbase\user\components\oauth\VKontakte',
'clientId' => '?',
'clientSecret' => '?',
'scope' => 'email'
],
'google' => [
// https://console.developers.google.com/project
'class' => 'lowbase\user\components\oauth\Google',
'clientId' => '?',
'clientSecret' => '?',
],
'twitter' => [
// https://dev.twitter.com/apps/new
'class' => 'lowbase\user\components\oauth\Twitter',
'consumerKey' => '?',
'consumerSecret' => '?',
],
'facebook' => [
// https://developers.facebook.com/apps
'class' => 'lowbase\user\components\oauth\Facebook',
'clientId' => '?',
'clientSecret' => '?',
],
'github' => [
// https://github.com/settings/applications/new
'class' => 'lowbase\user\components\oauth\GitHub',
'clientId' => '?',
'clientSecret' => '?',
'scope' => 'user:email, user'
],
'yandex' => [
// https://oauth.yandex.ru/client/new
'class' => 'lowbase\user\components\oauth\Yandex',
'clientId' => '?',
'clientSecret' => '?',
],
],
],
//---------------------------------------------
// Для реализации разделения прав пользователей
// с помощью коробочного модуля Yii2 RBAC.
//---------------------------------------------
'authManager' => [
'class' => 'yii\rbac\DbManager',
'itemTable' => 'lb_auth_item',
'itemChildTable' => 'lb_auth_item_child',
'assignmentTable' => 'lb_auth_assignment',
'ruleTable' => 'lb_auth_rule'
],
//-------------------------------------------------
// Прописываем правила роутинга для соответствующих
// действий с модулем в приложении.
//-------------------------------------------------
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
//Взаимодействия с пользователем на сайте
'<action:(login|logout|signup|confirm|reset|profile|remove|online)>' => 'lowbase-user/user/<action>',
//Взаимодействия с пользователем в панели админстрирования
'admin/user/<action:(index|update|delete|view|rmv|multidelete|multiactive|multiblock)>' => 'lowbase-user/user/<action>',
//Авторизация через социальные сети
'auth/<authclient:[\w\-]+>' => 'lowbase-user/auth/index',
//Просмотр пользователя
'user/<id:\d+>' => 'lowbase-user/user/show',
//Взаимодействия со странами в панели админстрирования
'admin/country/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/country/<action>',
//Поиск населенного пункта (города)
'city/find' => 'lowbase-user/city/find',
//Взаимодействия с городами в панели администрирования
'admin/city/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/city/<action>',
//Работа с ролями и разделением прав доступа
'admin/role/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/auth-item/<action>',
//Работа с правилами контроля доступа
'admin/rule/<action:(index|create|update|delete|view|multidelete)>' => 'lowbase-user/auth-rule/<action>',
],
],
//-----------------------
// Подключаем сами модули
//-----------------------
'modules' => [
'gridview' => [
'class' => '\kartik\grid\Module'
],
'lowbase-user' => [
'class' => '\lowbase\user\Module',
],
],
Внимание!!!
Рекомендуем не изменять название модуля lowbase-user в конфигурационном файле. Т.к. модели и контроллеры модуля могут быть унаследованы в приложении (для кастомизации) и необходимо будет поменять captchaAction и baseAuthUrl для работоспособности
капчи и авторизации через соц. сети.
Создание таблиц БД
Запускаем миграции командой:
php yii migrate/up --migrationPath=@vendor/lowbase/yii2-user/migrations
Миграции создают необходимые таблицы и заполняют их предустановленными значениями по минимуму. Изначально установлены 2 роли: Администратор и модератор:
//Администратор по умолчанию
const ADMIN_FIRST_NAME = 'Имя_администратора';
const ADMIN_LAST_NAME = 'Фамилия_администратора';
const ADMIN_EMAIL = 'admin@example.ru';
const ADMIN_PASSWORD = 'admin';
//Модератор по умолчанию
const MODERATOR_FIRST_NAME = 'Имя_модератора';
const MODERATOR_LAST_NAME = 'Фамилия_модератора';
const MODERATOR_EMAIL = 'moderator@example.ru';
const MODERATOR_PASSWORD = 'moderator';
Таблицы страны и города будут пустыми. Если хотите заполнить их записями из базы данных Вконтакте, то для этого импортируйте в базу файл из папки с миграциями:
dump_city.sql
Пользовательское отображение страниц модуля
'modules' => [
'user' => [
'class' => '\lowbase\user\Module',
'customViews' => [
// Меняем стандартное отображение профиля
'login' => '@app/views/user/profile'
]
],
],
// Допустимые отображения для кастомизации:
//
// signup - регистрация
// login - авторизация
// profile - профиль
// repass - восстановление пароля
// show - просмотр пользователя
// confirmEmail - шаблон письма подтверждения Email
// passwordResetToken - шаблон письма сброса пароля
Запуск виджетов
use lowbase\user\components\LoginWidget;
use lowbase\user\components\OnlineWidget;
use lowbase\user\components\AuthKeysManager;
use lowbase\user\components\AuthChoice;
// Виджет авторизации (с отключеными иконками соц. сетей)
<?= LoginWidget::widget(['oauth' => false]) ?>
// Виджет проверяющий пользователя Online (с установкой времени опроса 300 секунд)
<?= OnlineWidget::widget(['time' => 300]) ?>
// Виджет авторизации через социальные сети
<?= AuthChoice::widget([['baseAuthUrl' => ['/lowbase-user/auth/index']]]) ?>
// Виджет привязки социальных сетей к профилю
<?= AuthKeysManager::widget(['baseAuthUrl' => ['/lowbase-user/auth/index']]) ?>
lowbase/yii2-user 适用场景与选型建议
lowbase/yii2-user 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.5k 次下载、GitHub Stars 达 13, 最近一次更新时间为 2016 年 04 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「module」 「user」 「extension」 「yii2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lowbase/yii2-user 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lowbase/yii2-user 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lowbase/yii2-user 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A custom URL rule class for Yii 2 which allows to create translated URL rules
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
TYPO3 CMS extension to create gallery content element with preset crop ratios and pagination
UI Kit 3 Extension for Yii2
Adds more BBCode
Define your own css rule-sets for the TYPO3 CMS backend.
统计信息
- 总下载量: 1.5k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 13
- 点击次数: 1
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2016-04-27