2021-03-31 21:56:49 -04:00
..
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00
2021-03-31 21:56:49 -04:00

Google2FA QRCode

Latest Stable Version License Code Quality Build

Downloads Coverage StyleCI PHP

QRCode For Google2FA

This is package is Goole2FA integrated with a QRCode generator, providing an easy way to plot QRCode for your two factor authentication. For documentation related to Google2FA, please check the documentation of the main package.

Requirements

  • PHP 5.4+

Installing

Use Composer to install it:

composer require pragmarx/google2fa-qrcode

Using It

Instantiate it directly

use PragmaRX\Google2FAQRCode\Google2FA;
    
$google2fa = new Google2FA();
    
return $google2fa->generateSecretKey();

Generating QRCodes

The securer way of creating QRCode is to do it yourself or using a library. First you have to install the BaconQrCode package, as stated above, then you just have to generate the inline string using:

$inlineUrl = $google2fa->getQRCodeInline(
    $companyName,
    $companyEmail,
    $secretKey
);

And use it in your blade template this way:

<img src="{{ $inlineUrl }}">
$secretKey = $google2fa->generateSecretKey(16, $userId);

Show the QR Code to your user, via Google Apis

It's insecure to use it via Google Apis, so you have to enable it before using it.

$google2fa->setAllowInsecureCallToGoogleApis(true);

$google2fa_url = $google2fa->getQRCodeGoogleUrl(
    'YourCompany',
    $user->email,
    $user->google2fa_secret
);

/// and in your view:

<img src="{{ $google2fa_url }}" alt="">

And they should see and scan the QR code to their applications:

QRCode

And to verify, you just have to:

$secret = $request->input('secret');

$valid = $google2fa->verifyKey($user->google2fa_secret, $secret);

Tests

The package tests were written with PHPUnit.

Authors

License

Google2FAQRCode is licensed under the MIT License - see the LICENSE file for details.

Contributing

Pull requests and issues are more than welcome.