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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值