Add security pin, mnemonic key and 2fa authentication feature to users.
Via Composer
$ composer require raditzfarhan/laravel-user-security:^1.0
The Laravel and Lumen configurations vary slightly, so here are the instructions for each of the frameworks.
Edit the config/app.php
file and add the following line to register the service provider:
'providers' => [
...
RaditzFarhan\UserSecurity\UserSecurityServiceProvider::class,
...
],
Tip: If you're on Laravel version 5.5 or higher, you can skip this part of the setup in favour of the Auto-Discovery feature.
Edit the bootstrap/app.php
file and add the following line to register the service provider:
...
$app->register(RaditzFarhan\UserSecurity\UserSecurityServiceProvider::class);
...
You will also need to enable Facades
in bootstrap/app.php
:
..
$app->withFacades(true, [
...
RaditzFarhan\UserSecurity\Facades\RFAuthenticator::class => 'RFAuthenticator'
]);
...
Open your user provider model class, for example App\User
, and add RaditzFarhan\UserSecurity\Traits\UserSecurable
trait:
<?php
namespace App;
...
use RaditzFarhan\UserSecurity\Traits\UserSecurable;
class User extends Model implements AuthenticatableContract, AuthorizableContract
{
...
use UserSecurable;
...
}
Example usage as below snippet:
// to add/update security pin for eloquent user
$user->updateSecurityPin($security_pin);
// to add/update entropy for eloquent user
$user->updateEntropy($entropy);
// to add/update multiple authenticators
$user->updateMultipleAuthenticators(['security_pin' => $security_pin, 'mnemonic_entropy' => $entropy]);
To use mnemonic functions, examples as below:
// Success response
// using service container to generate mnemonic object
$mnemonic = app('RFAuthenticator')->mnemonic()->generate();
// using alias to generate mnemonic object
$mnemonic = \RFAuthenticator::mnemonic()->generate();
// Use mnemonic codes to find entropy
$mnemonic = \RFAuthenticator::mnemonic()->words($words);
// Generate Mnemonic using specified Entropy
$mnemonic = \RFAuthenticator::mnemonic()->entropy($entropy);
Please see the changelog for more information on what has changed recently.
MIT. Please see the license file for more information.