Yii 2 Usuario Extension
Yii 2 usuario is a highly customizable and extensible user management, RBAC management, authentication, and authorization Yii2 module extension.
It works extensively with Yii's Container making it really easy to override absolutely anything within its core. The module is built to work out of the box with some minor config tweaks and it comes with the following features:
- Backend user/profile/account management
- Backend RBAC management
- Login via username/email + password process
- Login via social network process
- Password recovery process
This extension has been built to be working
out of the box, that is, after you install its migrations and configure
the module on your application structure, you should be set to go.
Step 1 - Download
You can download it and place it on your third party libraries folder but we highly recommend that you install it through composer.
$ composer require 2amigos/yii2-usuario:~1.0
require section of your
Step 2 - Apply database schema migrations
This is obvious extension like our which deals with users, roles, permissions, etc. have to use some database.
Our migrations are namespaced and available in
Note: If you are using Yii2's Advanced Application Template, before starting to work with database, please ensure you have deleted
m130524_201442_init.phpmigration file which comes from the default installation. It's located at
There are two ways to apply migrations of this extension, the first one:
./yii migrate --migrationNamespaces=Da\\User\\Migration ./yii migrate --migrationPath=@yii/rbac/migrations ./yii migrate
First command applies migration set of the user module, and the second one is for Yii RBAC migration, the third is for your own application migrations.
Note: you cannot mix two ways: choose one of them, and stick with it.
The second way is more comfortable, and you don't have to remember to launch first command every time you obtain
new version of our extension. First of all add the following lines to the file
return [ // ... 'controllerMap' => [ 'migrate' => [ 'class' => \yii\console\controllers\MigrateController::class, 'migrationPath => [ '@app/migrations', '@yii/rbac/migrations', // Just in case you forgot to run it on console (see next note) ], 'migrationNamespaces' => [ 'Da\User\Migration', ], ], ], // ... ];
This basically instructs your application to always try to use migrations from the given namespace. Which again is very convenient way to track new migration classes coming from this and possibly other extensions and sources.
Note: You will still have to apply Yii 2 RBAC migrations by executing
./yii migrate --migrationPath=@yii/rbac/migrations. Remember that you have to configure the
AuthManagercomponent first. Also, namespaced migrations were introduced in Yii 2.0.10, so before using them consider updating your framework installation version. If you are using a Yii 2 version prior to 2.0.10, you'll have to copy the migrations located on
vendor/2amigos/yii2-usuario/src/User/Migration, remove its namespaces and add it to your @app/migrations folder.
Step 3 - Configure
Once we have it installed, we have to configure it on your
'modules' => [ 'user' => [ 'class' => Da\User\Module::class, ] ]
Configuration may differ from template to template, the following are some guidelines for sidekit app template and the official Yii2 advanced application template:
See also all the possible configuration options available:
Enhancing and Overriding
Events are a good way to execute logic before and after certain processes. Yii2 Usuario comes with a huge list of them.
One important thing to remember is that this module overrides those of
yii\web\User. They will simply not work, you
must use those specified on this module.
The recommended way to make use of events is by creating a new file in your config folder (i.e.
there all your events and then include that file on your
- User Events
- Form Events
- Reset Password Events
- Social Network Authentication Events
- Social Network Connection Events
- How to Add Captcha Widget
- How to Add Google reCaptcha Widget
- How to Implement Two-Factor Authentication
- How to Switch Identities
- Separate Frontend and Backend Sessions
- Social Network Authentication
© 2amigos 2013-2017