enygma/gauth

PHP 库,用于生成与 Google Authenticator 客户端兼容的代码

0.4 2016-09-12 12:52 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:55:43 UTC


README

Total Downloads

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。

更多信息