sergmoro1 / yii2-user
User registration by email with confirmation. Users management. Login with OAuth2 credensials. Predefined for role based access control.
Installs: 131
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=5.4.0
- sergmoro1/yii2-lookup: ^1.1
- yiisoft/yii2: *
- yiisoft/yii2-authclient: ^2.1
This package is auto-updated.
Last update: 2024-12-19 03:37:33 UTC
README
Advantages
- registration, email confirmation, reset password, authentification;
- social networks OAuth2 authentification (avatar available);
- backend users management.
Installation
The preferred way to install this extension is through composer.
Either run
composer require --prefer-dist sergmoro1/yii2-user
or add
"sergmoro1/yii2-user": "^1.1"
to the require section of your composer.json.
Run migration
php yii migrate --migrationPath=@vendor/sergmoro1/yii2-user/src/migrations
Configuration
Add to the configuration file used modules definitions, OAuth2 and mailler components.
return [ ... 'modules' => [ 'lookup' => ['class' => 'sergmoro1\lookup\Module'], 'user' => ['class' => 'sergmoro1\user\Module'], ], 'components' => [ 'authClientCollection' => [ 'class' => 'yii\authclient\Collection', 'clients' => [ 'yandex' => [ 'class' => 'yii\authclient\clients\Yandex', 'clientId' => 'YandexClientId', 'clientSecret' => 'YandexClientSecret', ], ], ], 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' => false, 'viewPath' => '@vendor/sergmoro1/yii2-user/src/mail', /* Example of definition (Yandex) 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.yandex.ru', 'username' => 'admin@your-site.ru', 'password' => 'your-password', 'port' => '465', 'encryption' => 'ssl', ], */ ], ],
Redeclare getAvatarImage()
, something like this (if sergmoro1/yii2-uploader
is used) or any other way.
public function getAvatarImage() { return $this->getImage('thumb'); }
Usage
Add action for OAuth2 authentification with social network accounts to controller.
namespace frontend\controllers; use Yii; use sergmoro1\user\traits\AuthTrait; class SiteController extends Controller { use AuthTrait; /** * Handler for EVENT_AFTER_LOGGED_IN. May be defined if needed. */ public function init() { parent::init(); $this->on(\sergmoro1\user\Module::EVENT_AFTER_LOGGED_IN, function($event) { Yii::$app->session->setFlash('success', Yii::t('app', 'You are logged in as a commentator. You can leave a comment now.')); }); } /** * inheritdoc */ public function actions() { return [ 'auth' => [ 'class' => 'yii\authclient\AuthAction', 'successCallback' => [$this, 'onAuthSuccess'], ], ]; }
Place the widget somewhere in the view.
<?= sergmoro1\user\widgets\SocialCredentials::widget() ?>
Social icons can be defined in Yii::$app->params['icons']
. Their use is determined by widgets/views/socialCredentials.php
.