PHP code example of verdient / google-authenticator
1. Go to this page and download the library: Download verdient/google-authenticator library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
verdient / google-authenticator example snippets
use Verdient\GoogleAuthenticator\GoogleAuthenticator;
/**
* 密钥长度 (可选)
* 必须为8的倍数的正整数
* 默认为32
*/
$sercetLength = 32;
/**
* 类型 (可选)
* 可选值 totp(基于时间),hotp(基于计数器)
* 默认为totp
*/
$type = 'totp';
/**
* issuer (可选)
* 发行方
* 默认为null
*/
$issuer = null;
/**
* 算法 (可选)
* 可选 SHA1,SHA256,SHA512
* 默认为SHA1
*/
$algorithm = 'SHA1';
/**
* 位数 (可选)
* 可选6,8
* 默认为6
*/
$digits = 6;
/**
* 周期 (可选,仅在type为totp时有效)
* 默认为30
*/
$period = 30;
/**
* 二维码生成器 (可选)
* 默认Verdient\GoogleAuthenticator\QrImageGenerator\EndroidGenerator
* EndroidGenerator需要通过 composer
/**
* 秘钥长度(可选)
* 该参数为空时秘钥长度以sercetLength的配置为准
*/
$length = null;
$secret = $authenticator->generateSecret($length);
$name = '${名称}'; //名称
$secret = '${secret}'; //密钥,这里一般是用上面生成的密钥
$options = [
'issuer' => '${issuer}', // 发行方
'algorithm' => '${algorithm}', // 算法
'digits' => '${digits}', // 位数
'counter' => '${counter}', // 计数(仅当type为hotp时有效)
'period' => '${period}' // 周期(仅当type为totp时有效)
]; // 选项,用于覆盖全局配置,一般情况下不用传
$data = $authenticator->getUri($name, $secret, $options);
$data = $authenticator->getQrImageUri($name, $secret, $options);
/**
* 验证码 (必填)
* 由用户输入,用于验证
*/
$captcha = '123456';
/**
* 秘钥 (必填)
* 一般从数据库中获取
*/
$secret = '';
/**
* 允许向前和向后偏移的时间窗口 (可选)
* 默认为1
* 必须为0或正整数
*/
$window = 1;
$authenticator->validate($captcha, $secret, $window);