enygma / gauth
PHP 库,用于生成与 Google Authenticator 客户端兼容的代码
0.4
2016-09-12 12:52 UTC
Requires
- php: >=5.3.1
- bacon/bacon-qr-code: 1.0.0
- paragonie/random_compat: 2.*
This package is not auto-updated.
Last update: 2024-09-14 14:55:43 UTC
README
GAuth
库旨在生成和验证与 Google Authenticator 工具兼容的代码。
通过 Composer 安装
将以下内容包含在 composer.json
文件中
{
"require": {
"enygma/gauth": "dev-master"
}
}
入门指南
要开始使用 Google Authenticator 与您的应用程序,您需要生成一个初始化密钥(使用 generateCode
),并将其保存到应用程序的设置中。当用户尝试设置您的系统客户端时,您将分享此代码。
然后,当用户登录时,让他们输入您的应用程序为其账户列出的最新代码。
注意:此工具提供了2秒前后“机会窗口”的代码,以防万一出现一点偏差。您可以使用 setRange
方法更改此设置
<?php $g = new \GAuth\Auth(); // set it to 3 seconds $g->setRange(3); ?>
生成新代码
<?php require_once 'vendor/autoload.php'; // Useful for creating a new Initialization key if needed $g = new \GAuth\Auth(); $code = $g->generateCode(); var_dump($code); ?>
验证代码
<?php $code = 'code-inputted-from-user'; $g = new \GAuth\Auth('your-initialization-code'); $verify = $g->validateCode($code); if ($verify == true) { echo 'User code verified!'; } else { echo 'User code invalid!'; } ?>
获取应用程序的二维码
您还可以使用此工具获取用户扫描以将其应用程序添加到其 Authenticator 客户端的 URL。调用 generateQrImage
返回实际图像数据,您可以使用它嵌入到 img
标签中或保存到文件中
<?php $holder = 'foo@bar.com'; $name = 'my-app-name'; $g = new \GAuth\Auth('your-initialization-code'); $qrCodeImageData = $g->generateQrImage($holder, $name, 200); // To use in an image tag: echo '<img src="data:image/png;base64,'.base64_encode($qrCodeImageData).'"/><br/><hr/>'; // Or just save to a file file_put_contents('/path/to/qr-file.png', $qrCodeImageData); ?>
该库使用内部二维码生成,而不是许多类似库使用的 Google Charts API。