neto737 / googleauthenticator
谷歌身份验证器双因素认证
1.0.0
2024-07-02 02:16 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: ^11.2
README
- 版权(c)2012-2016, http://www.phpgangsta.de
- 作者:Michael Kliewe, @PHPGangsta 和 贡献者
- 许可协议为BSD许可。
此PHP类可用于与谷歌身份验证器移动应用程序进行交互,以实现双因素认证。该类可以生成密钥、生成代码、验证代码并提供用于扫描密钥的二维码。它根据RFC 6238实现TOTP。
为了安全安装,您必须确保使用的代码不能被重用(重放攻击)。您还需要限制验证次数,以抵御暴力攻击。例如,您可以将一个IP地址(或IPv6块)的验证次数限制为10分钟内的10次尝试。这取决于您的环境。
安装
-
使用 Composer 安装包
-
从项目根目录执行以下命令
$ composer require neto737/GoogleAuthenticator
或者,如果将以下内容放入您的 composer.json
"require": { "neto737/GoogleAuthenticator": "~2.0" }
使用方法
请参见以下示例
require 'vendor/autoload.php'; $ga = new \neto737\GoogleAuthenticator; $secret = $ga->createSecret(); echo "Secret is: " . $secret . PHP_EOL . PHP_EOL; $qrCodeUrl = $ga->getQRCodeGoogleUrl('Blog', $secret); echo "Google Charts URL for the QR-Code: ".$qrCodeUrl . PHP_EOL . PHP_EOL; $oneCode = $ga->getCode($secret); echo "Checking Code '$oneCode' and Secret '$secret': "; $checkResult = $ga->verifyCode($secret, $oneCode, 2); // 2 = 2*30sec clock tolerance if ($checkResult) { echo 'OK'; } else { echo 'FAILED'; }
运行脚本将提供以下输出
Secret is: OQB6ZZGYHCPSX4AK
Google Charts URL for the QR-Code: https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/infoATphpgangsta.de%3Fsecret%3DOQB6ZZGYHCPSX4AK
Checking Code '848634' and Secret 'OQB6ZZGYHCPSX4AK': OK
备注
如果您喜欢此脚本或想添加一些功能:请联系我,访问我的博客,分支此项目,发送pull请求,您知道如何操作。