hxm/2fa

A One Time Password Authentication package.

1.0.1 2021-10-26 10:18 UTC

This package is auto-updated.

Last update: 2024-10-27 08:46:28 UTC


README

A One Time Password Authentication package.

Installation

  1. This package publishes a config/hxm2fa.php file. If you already have a file by that name, you must rename or remove it.

  2. You can install the package via composer:

    composer require hxm/2fa
  3. Run the migrations:

    php artisan migrate
  4. You should publish the template views and the config/hxm2fa.php config file with:

    php artisan vendor:publish --provider=HXM2FA\ServiceProvider
    
  • Default config file contents

    // ...
    return [
        'enabled' => true,
        'show_secret' => false,
        'route' => [
            'prefix' => 'user'
        ],
    
        'extend_layout' => 'layouts.app',
    
        'encrypt_secret' => true,
    
        /*customer QR style*/
        'qr_code' => [
            'size' => 192,
            'margin' => 0,
            'background' => [
                'red' => 255, //red the red amount of the color, 0 to 255
                'green' => 255, //green the green amount of the color, 0 to 255
                'blue' => 255 //blue the blue amount of the color, 0 to 255
            ],
            'fill' => [
                'red' => 45, //red the red amount of the color, 0 to 255
                'green' => 55, //green the green amount of the color, 0 to 255
                'blue' => 72 //blue the blue amount of the color, 0 to 255
            ],
        ]
    ];

Basic Usage

  • First, add the HXM2FA\TwoFactorAuthenticatable trait to your User model(s):

      
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use HXM2FA\TwoFactorAuthenticatable;
    
    class User extends Authenticatable
    {
      use TwoFactorAuthenticatable;
    
      // ...
    }
          
  • We provide a Facede with static functions that perform useful functions:

          
    use HXM2FA\Facades\HXM2FA;
    
      // ...
    
      /*to generate Secret*/
      $secret = HXM2FA::generate2FASecret();
    
      
      /*to generate QrCode html*/
      HXM2FA::getQrCode(string $company, string $holder, string $secret)
      
      /*to verify code*/
      HXM2FA::verifyCode(string $secret, string $code)
    
      /*To get instance of \PragmaRX\Google2FA\Google2FA */
      HXM2FA::getGoogle2FA();
    
      // ...
          

Author

HoanXuanMai