php接入Google身份验证器

如果不清楚Google身份验证器是个什么东西的,建议先去了解一下,再回来看此篇文章,会更好理解一些。

GitHub上有对Google Auth的php实现封装,这里直接拿下来用,可从以下地址自行获取GitHub Google Authenticator

要使用Google Auth就需要先做好关联,支持的两种关联方式分别是“扫码”和“秘钥”,都有完整的支持。

<?php
require_once "../GoogleAuthenticator/PHPGangsta/GoogleAuthenticator.php";
$obj = new PHPGangsta_GoogleAuthenticator();
//在这里生成秘钥,如果使用用户输入秘钥的关联方式,就将这段秘钥展示给用户
$sec = $obj->createSecret();
//如果使用扫码的方式进行关联,就可以使用下面的方法来生成二维码展示给用户
$url = $obj->getQRCodeGoogleUrl('liangcs2', $sec);

getQRCodeGoogleUrl方法的第一个参数,是关联后展示在Google Auth中的信息,如下所示:
在这里插入图片描述
这样,账号关联就创建好了。
此时,用户在进行登录的时候,就可以输入Google Auth提供的6位动态码来进行二步校验了。

<?php
require_once "../GoogleAuthenticator/PHPGangsta/GoogleAuthenticator.php";
$obj = new PHPGangsta_GoogleAuthenticator();
$dyncCode = $_POST['dynamic_code'];
//对用户输入的6位动态码进行校验,参数$sec是与此用户关联的秘钥
$ret = $obj->verifyCode($sec, $dyncCode);
if($ret) {
    echo "login success\n";
} else {
    echo "login fail\n";
}

至此,php与Google Auth的接入就完成了,包含了比较完整的”引入->生成->关联->校验"操作,再根据实际的业务需求做一些适配,就能明显的增强我们账号体系的安全性了。

发布了105 篇原创文章 · 获赞 58 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/ljl890705/article/details/104934167