pragmarx / google2fa-qrcode
Google2FA 的二维码包
v3.0.0
2021-08-15 12:53 UTC
Requires
- php: >=7.1
- pragmarx/google2fa: >=4.0
Requires (Dev)
- bacon/bacon-qr-code: ^2.0
- chillerlan/php-qrcode: ^1.0|^2.0|^3.0|^4.0
- khanamiryan/qrcode-detector-decoder: ^1.0
- phpunit/phpunit: ~4|~5|~6|~7|~8|~9
Suggests
- bacon/bacon-qr-code: For QR Code generation, requires imagick
- chillerlan/php-qrcode: For QR Code generation
README
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="">
他们应该看到并扫描二维码到他们的应用程序中
要验证,您只需
$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 文件。
贡献
欢迎提交拉取请求和问题。