An open API service indexing awesome lists of open source software.

https://github.com/antonioribeiro/google2fa-qrcode

QRCode for Google2FA
https://github.com/antonioribeiro/google2fa-qrcode

Last synced: 5 months ago
JSON representation

QRCode for Google2FA

Awesome Lists containing this project

README

          

# Google2FA QRCode


Latest Stable Version
License
Code Quality
Build



Downloads
Coverage
StyleCI
PHP

### QRCode For Google2FA

This is package is [Goole2FA](https://github.com/antonioribeiro/google2fa) 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](https://github.com/antonioribeiro/google2fa).

## Requirements

- PHP 5.4+

## Installing

Use Composer to install it:

```
composer require pragmarx/google2fa-qrcode
```

## Using It

### Instantiate it directly

```php
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:

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

And use it in your blade template this way:

```html

```

```php
$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.

```php
$google2fa->setAllowInsecureCallToGoogleApis(true);

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

/// and in your view:


```

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

![QRCode](https://chart.googleapis.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth%3A%2F%2Ftotp%2FPragmaRX%3Aacr%2Bpragmarx%40antoniocarlosribeiro.com%3Fsecret%3DADUMJO5634NPDEKW%26issuer%3DPragmaRX)

And to verify, you just have to:

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

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

## Replacing the QRCode rendering service

If you want to use a different service, you just have to

```php
$google2fa->setQrcodeService(new YourService())
->getQRCodeInline(
$companyName,
$companyEmail,
$secretKey
);
```

## Built-in QRCode rendering services

Beginning on version 2.0 the rendering service is optional, so you have to manually install one of those packages in order to generate QRCodes:

- [BaconQrCode](https://github.com/Bacon/BaconQrCode): renders PNG by default, but requires the Imagick PHP extension. You can configure it to use different backends, but you'll have to instantiate it yourself.
- [chillerlan/php-qrcode](https://github.com/chillerlan/php-qrcode): renders SVG by default and don't require the Imagick PHP extension, but can also generate other formats, which may require Imagick.

## Using a different image backend

```php
$google2fa->setQrcodeService(
new \PragmaRX\Google2FAQRCode\QRCode\Bacon(
new \BaconQrCode\Renderer\Image\SvgImageBackEnd()
)
);

// or

$google2fa = new Google2FA(
new Bacon(
new \BaconQrCode\Renderer\Image\SvgImageBackEnd()
)
);
```

## Tests

The package tests were written with [PHPUnit](https://phpunit.de/).

## Authors

- [Antonio Carlos Ribeiro](http://twitter.com/iantonioribeiro)
- [All Contributors](https://github.com/antonioribeiro/google2fa/graphs/contributors)

## License

Google2FAQRCode is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.

## Contributing

Pull requests and issues are more than welcome.