最新活动温馨提示:99元终身VIP,整站资源免费下载!
头像

使用Google Authenticator对用户登录进行双因素认证

来源:http://www.erdangjiade.com/php/8741.html 二当家的 2019-04-02 18:04浏览(217)

多因素认证(MFA),是一种计算机访问控制的方法,用户要通过两种以上的认证机制之后,才能得到授权,使用计算机资源。MFA的目的是建立一个多层次的防御,使未经授权的人访问计算机系统或网络更加困难,从而提高安全性。

1、请不要问“在不在”之类的问题,有问题直接问!2、学生或暂时没有工作的童鞋,99元整站资源免费下载!3、充值VIP会员,整站资源无任何限制下载!5、程序员加油,交流群:368848856 在线 充值

使用Google Authenticator对用户登录进行双因素认证
分类:PHP > 函数 难易:初级
查看演示 下载资源: 4

关注微信号获取此Demo视频教程:

下载资源 下载积分: 20 积分

最常见的应用场景是网上银行汇款,身份验证后还需要额外的短信验证码或者类似UKEY口令码才能最终完成汇款操作。多因素验证目前市面上有基于硬件和基于软件的产品,硬件产品类似于U盘,不过现在很多企业用户都使用基于软件APP形式的产品。今天我给大家介绍一款开源的二次认证系统Google Authenticator,结合我们的常见的用户登录模块,完成一个简单的二次双因素认证。Google Authenticato可以利用智能手机生产30秒动态口令,该验证器提供了一个六位数的一次性密码。目前ios 和Android 都有客户端供于下载。大家可以到Apple Store和安卓应用平台搜Eagle 2FA进行安装。 Google Authenticator双因素验证相比于传统的短信验证,具有以下优点: 开源免费; 避免无法接收验证短信的痛苦; 无网络环境下也可用,手机欠费停机不受影响。 我们使用基于PHP的Google Authenticator组件,提供了生成密钥、生成口令码、验证口令码以及生成用于快速扫描的二维码等功能。 安装 我们使用composer安装:

composer require "phpgangsta/googleauthenticator:dev-master"

使用 生成密钥:

$ga = new PHPGangsta_GoogleAuthenticator();
$secret = $ga->createSecret();
echo $secret;

运行后会生成一个随机密钥:OQB6ZZGYHCPSX4AK,这个密钥应该保存在数据库里和用户信息对应,即每个用户对应一个密钥。 验证口令码: 当用户提交口令码后,需要验证口令码是否正确,可以使用以下代码:

$oneCode = $_POST['code'];
$checkResult = $ga->verifyCode($secret, $oneCode, 2); // 2 = 2 * 30秒时钟容差
if ($checkResult) {
    echo '匹配! OK';
} else {
    echo '不匹配! FAILED';
}

实际应用 典型的用户登录双因素认证流程: 1.用户输入用户名密码提交。 2.后台验证用户是否合法,如果用户名密码都正确,则进入下一步二次认证。 3.打开手机端APP, 找到对应生成的一次性口令码,按要求输入口令码。 4.提交口令码,后台验证,如果正确则完成验证。 具体代码请参照demo演示和下载源码。 手机端APP截图: 我们还可以做的更安全,限制验证次数,抵御暴力攻击。比如我们可以限制5分钟内最多5次口令码验证尝试,以提高系统安全性。

声明:本文为原创文章,如需转载,请注明来源erdangjiade.com并保留原文链接:https://www.erdangjiade.com/php/8741.html
评论1
头像

友情提示:垃圾评论一律封号 最新福利:领取阿里云限量2000通用代金券

  • 头像 沙发
    04-10 08:44
    luojie972
    用户登录进行双因素认证是什么意思???
1 2