2017 © Pedro Peláez
 

library google2fa-laravel

A One Time Password Authentication package, compatible with Google Authenticator.

image

canerdogan/google2fa-laravel

A One Time Password Authentication package, compatible with Google Authenticator.

  • Monday, December 18, 2017
  • by canerdogan
  • Repository
  • 1 Watchers
  • 0 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 41 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

Google2FA for Laravel

Latest Stable Version License Downloads Code Quality StyleCI, (*1)

Google Two-Factor Authentication for PHP Package for Laravel

Google2FA is a PHP implementation of the Google Two-Factor Authentication Module, supporting the HMAC-Based One-time Password (HOTP) algorithm specified in RFC 4226 and the Time-based One-time Password (TOTP) algorithm specified in RFC 6238., (*2)

This package is a Laravel bridge to Google2FA's PHP package., (*3)

The intent of this package is to create QRCodes for Google2FA and check user typed codes. If you need to create backup/recovery codes, please check below., (*4)

Recovery/Backup codes

if you need to create recovery or backup codes to provide a way for your users to recover a lost account, you can use the Recovery Package., (*5)

Demos, Example & Playground

Please check the Google2FA Package Playground., (*6)

playground, (*7)

Here's an demo app showing how to use Google2FA: google2fa-example., (*8)

You can scan the QR code on this (old) demo page with a Google Authenticator app and view the code changing (almost) in real time., (*9)

Compatibility

Laravel Google2FA Google2FA-Laravel
4.2 <= 1.0.1
5.0-5.1 <= 1.0.1
5.2-5.5 >= 2.0.0 >= 0.1.4

Before Google2FA 2.0 (Laravel 5.1) you have to install pragmarx/google2fa:~1.0, because this package was both a Laravel package and a PHP (agnostic)., (*10)

Installing

Use Composer to install it:, (*11)

composer require pragmarx/google2fa-laravel

If you prefer inline QRCodes instead of a Google generated url, you'll need to install BaconQrCode:, (*12)

composer require bacon/bacon-qr-code

Installing on Laravel

Laravel 5.5

You don't have to do anything else, this package autoloads the Service Provider and create the Alias, using the new Auto-Discovery feature., (*13)

Laravel 5.4 and below

Add the Service Provider and Facade alias to your app/config/app.php (Laravel 4.x) or config/app.php (Laravel 5.x):, (*14)

``` php PragmaRX\Google2FALaravel\ServiceProvider::class,, (*15)

'Google2FA' => PragmaRX\Google2FALaravel\Facade::class,, (*16)


## Publish the config file ``` php php artisan vendor:publish --provider="PragmaRX\Google2FALaravel\ServiceProvider"

Using It

Use the Facade

``` php use Google2FA;, (*17)

return Google2FA::generateSecretKey();, (*18)


#### In Laravel you can use the IoC Container ``` php $google2fa = app('pragmarx.google2fa'); return $google2fa->generateSecretKey();

Middleware

This package has a middleware which will help you code 2FA on your app. To use it, you just have to:, (*19)

Demo

Click here to see the middleware demo:, (*20)

middleware, (*21)

Using the middleware

Add the middleware to your Kernel.php:

``` php protected $routeMiddleware = [ ... '2fa' => \PragmaRX\Google2FALaravel\Middleware::class, ];, (*22)


### Using it in one or more routes: ``` php Route::get('/admin', function () { return view('admin.index'); })->middleware(['auth', '2fa']);

Configuring the view

You can set your 'ask for a one time password' view in the config file (config/google2fa.php):, (*23)

``` php /** * One Time Password View */ 'view' => 'google2fa.index',, (*24)


And in the view you just have to provide a form containing the input, which is also configurable: ``` php /** * One Time Password request input name */ 'otp_input' => 'one_time_password',

Here's a form example:, (*25)



One Time Password Lifetime

Usually an OTP lasts forever, until the user logs off your app, but, to improve application safety, you may want to re-ask, only for the Google OTP, from time to time. So you can set a number of minutes here:, (*26)

``` php /** * Lifetime in minutes. * In case you need your users to be asked for a new one time passwords from time to time. */, (*27)

'lifetime' => 0, // 0 = eternal, (*28)


And you can decider whether your OTP will be kept alive while your users are browsing the site or not: ``` php /** * Renew lifetime at every new request. */ 'keep_alive' => true,

Manually logging out from 2Fa

This command wil logout your user and redirect he/she to the 2FA form on the next request:, (*29)

``` php Google2FA::logout();, (*30)


If you don't want to use the Facade, you may: ``` php use PragmaRX\Google2FALaravel\Support\Authenticator; (new Authenticator(request()))->logout();

Documentation

Check the ReadMe file in the main Google2FA repository., (*31)

Tests

The package tests were written with phpspec., (*32)

Author

Antonio Carlos Ribeiro, (*33)

License

Google2FA is licensed under the BSD 3-Clause License - see the LICENSE file for details, (*34)

Contributing

Pull requests and issues are more than welcome., (*35)

The Versions

18/12 2017

dev-master

9999999-dev

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa

17/12 2017

v0.1.5.1

0.1.5.1

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa

15/12 2017

v0.1.5

0.1.5.0

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa

06/12 2017

v0.1.4

0.1.4.0

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa

06/12 2017

v0.1.3

0.1.3.0

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa

23/06 2017

v0.1.2

0.1.2.0

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa

22/06 2017

v0.1.1

0.1.1.0

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa

20/06 2017

v0.1.0

0.1.0.0

A One Time Password Authentication package, compatible with Google Authenticator.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

laravel authentication two factor authentication google2fa