定制 pragmarx/google2fa-qrcode 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pragmarx/google2fa-qrcode

最新稳定版本:v3.0.1

Composer 安装命令:

composer require pragmarx/google2fa-qrcode

包简介

QR Code package for Google2FA

README 文档

README

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);

Replacing the QRCode rendering service

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

$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: 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: 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

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

Authors

License

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

Contributing

Pull requests and issues are more than welcome.

统计信息

  • 总下载量: 20.14M
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 121
  • 点击次数: 2
  • 依赖项目数: 39
  • 推荐数: 2

GitHub 信息

  • Stars: 117
  • Watchers: 3
  • Forks: 26
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04