lirriella/yii2-users

用于管理用户及其权限的模块,支持通过社交服务进行注册,并为每个用户分配多个社交服务。

安装: 10

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 39

类型:yii2-extension

0.1.19 2017-11-08 13:55 UTC

This package is auto-updated.

Last update: 2024-09-24 05:34:40 UTC


README

支持通过社交服务进行注册并管理用户及其权限的模块。

功能

通过电子邮件和社交网络进行用户注册和授权,能够将多个不同社交网络账户绑定到您的网站上的一个账户

Authorization widget OAuth keys manage widget

更改密码

Changing password

找回密码

Recovering password

更改电子邮件。确认将发送到旧地址和新地址

Changing e-mai

编辑个人资料

Editinig profile

用户管理模块

Admin module

通过GUI编辑RBAC结构和用户权限

Editing RBAC structure

Editiong user permissions

安装

安装此扩展的首选方式是通过 composer

运行以下命令:

php composer.phar require --prefer-dist lirriella/yii2-users "*"

"lirriella/yii2-users": "*"

将以下内容添加到您的 composer.json 文件的 require 部分中。

配置

'user' => [
    'identityClass' => 'lirriella\users\models\User',
    'enableAutoLogin' => true,
    'loginUrl' => ['/login'],
],
'authClientCollection' => [
    'class' => 'yii\authclient\Collection',
    'clients' => [
        'vkontakte' => [
            'class' => 'budyaga\users\components\oauth\VKontakte',
            'clientId' => 'XXX',
            'clientSecret' => 'XXX',
            'scope' => 'email'
        ],
        'google' => [
            'class' => 'lirriella\users\components\oauth\Google',
            'clientId' => 'XXX',
            'clientSecret' => 'XXX',
        ],
        'facebook' => [
            'class' => 'budyaga\users\components\oauth\Facebook',
            'clientId' => 'XXX',
            'clientSecret' => 'XXX',
        ],
        'github' => [
            'class' => 'budyaga\users\components\oauth\GitHub',
            'clientId' => 'XXX',
            'clientSecret' => 'XXX',
            'scope' => 'user:email, user'
        ],
        'linkedin' => [
            'class' => 'budyaga\users\components\oauth\LinkedIn',
            'clientId' => 'XXX',
            'clientSecret' => 'XXX',
        ],
        'live' => [
            'class' => 'budyaga\users\components\oauth\Live',
            'clientId' => 'XXX',
            'clientSecret' => 'XXX',
        ],
        'yandex' => [
            'class' => 'budyaga\users\components\oauth\Yandex',
            'clientId' => 'XXX',
            'clientSecret' => 'XXX',
        ],
        'twitter' => [
            'class' => 'budyaga\users\components\oauth\Twitter',
            'consumerKey' => 'XXX',
            'consumerSecret' => 'XXX',
        ],
    ],
],
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        '/signup' => '/user/user/signup',
        '/login' => '/user/user/login',
        '/logout' => '/user/user/logout',
        '/requestPasswordReset' => '/user/user/request-password-reset',
        '/resetPassword' => '/user/user/reset-password',
        '/profile' => '/user/user/profile',
        '/retryConfirmEmail' => '/user/user/retry-confirm-email',
        '/confirmEmail' => '/user/user/confirm-email',
        '/unbind/<id:[\w\-]+>' => '/user/auth/unbind',
        '/oauth/<authclient:[\w\-]+>' => '/user/auth/index'
    ],
],
'authManager' => [
    'class' => 'yii\rbac\DbManager',
],

'modules' => [
    'user' => [
        'class' => 'budyaga\users\Module',
        'userPhotoUrl' => 'http://example.com/uploads/user/photo',
        'userPhotoPath' => '@frontend/web/uploads/user/photo'
    ],
],

将 XXX 替换为您自己的值。要获取这些值,您必须在社交网络上创建应用程序。

如果您正在使用高级模板和 Yandex 客户端,那么您必须在配置文件中添加 authClientCollection,以便于前端和后端应用程序。但是,Yandex 客户端只能添加到其中一个应用程序中。原因是 Yandex 的一个应用程序只能与一个域名协同工作,您不能在不同的域名上添加两个不同的 Callback URL。

并非所有服务都返回所有用户数据。如果服务不返回某些数据,则使用默认设置。

数据库迁移

yii migrate/up --migrationPath=@vendor/lirriella/yii2-users/migrations

此迁移将创建模块操作所需的所有表和两个用户

用法

在主布局中

use lirriella\users\components\AuthorizationWidget;
<?= AuthorizationWidget::widget() ?>

注册: http://example.com/signup

个人资料: http://example.com/profile

恢复密码: http://example.com/requestPasswordReset

管理用户: http://example.com/user/admin

管理 RBAC: http://example.com/user/rbac

自定义视图和电子邮件模板

如果您想使用自定义视图和电子邮件模板,您可以在配置中覆盖它们。例如

'modules' => [
    'user' => [
        'class' => 'lirriella\users\Module',
        'customViews' => [
            'login' => '@app/views/site/login'
        ],
        'customMailViews' => [
            'confirmChangeEmail' => '@app/mail/confirmChangeEmail' //in this case you have to create files confirmChangeEmail-html.php and confirmChangeEmail-text.php in mail folder
        ]
    ],
],

您可以覆盖来自 vendor\lirriella\yii2-users\views\uservendor\lirriella\yii2-users\mail 文件夹的所有视图。