pragmarx/google2fa-qrcode

Google2FA 的二维码包

v3.0.0 2021-08-15 12:53 UTC

This package is auto-updated.

Last update: 2024-08-27 04:29:51 UTC


README

Latest Stable Version License Code Quality Build

Downloads Coverage StyleCI PHP

Google2FA QRCode

此包是 Goole2FA 与二维码生成器集成,为您的双因素认证提供绘制二维码的简便方法。有关 Google2FA 的文档,请查看 主包的文档

要求

  • PHP 5.4+

安装

使用 Composer 安装

composer require pragmarx/google2fa-qrcode

使用方法

直接实例化

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

生成 QRCode

创建 QRCode 的更安全方法是自行创建或使用库。首先,您必须安装 BaconQrCode 包,如上所述,然后您只需使用以下方法生成内联字符串:

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

然后以这种方式在您的 blade 模板中使用它

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

通过 Google Apis 向用户展示 QRCode

通过 Google Apis 使用它是不安全的,因此在使用之前必须启用。

$google2fa->setAllowInsecureCallToGoogleApis(true);

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

/// and in your view:

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

他们应该看到并扫描二维码到他们的应用程序中

QRCode

要验证,您只需

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

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

替换 QRCode 渲染服务

如果您想使用不同的服务,只需

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

内置 QRCode 渲染服务

从版本 2.0 开始,渲染服务是可选的,因此您必须手动安装这些包之一以生成 QRCode

  • BaconQrCode: 默认渲染 PNG,但需要 Imagick PHP 扩展。您可以配置它使用不同的后端,但您必须自己实例化。
  • chillerlan/php-qrcode: 默认渲染 SVG,不需要 Imagick PHP 扩展,但也可以生成其他格式,可能需要 Imagick。

使用不同的图像后端

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

// or 

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

测试

该包的测试是用 PHPUnit 编写的。

作者

许可

Google2FAQRCode 根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。

贡献

欢迎提交拉取请求和问题。