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的接入就完成了,包含了比较完整的”引入->生成->关联->校验"操作,再根据实际的业务需求做一些适配,就能明显的增强我们账号体系的安全性了。
php接入Google身份验证器相关推荐
- 两步验证杀手锏:Java 接入 Google 身份验证器实战
转载自 两步验证杀手锏:Java 接入 Google 身份验证器实战 什么是两步验证? 大家应该对两步验证都熟悉吧?如苹果有自带的两步验证策略,防止用户账号密码被盗而锁定手机进行敲诈,这种例子屡见 ...
- Java web接入google身份验证器二次验证
实现原理参考: https://blog.seetee.me/post/2011/google-two-step-verification/ 第一步: maven工程加入依赖 <dependen ...
- linux 利用Google身份验证器配置ssh完成双重登录验证
一:准备一台linux 操作系统 在Ubuntu上安装Google身份验证器 sudo apt-get install libpam-google-authenticator -y 在centos上安 ...
- 使用google身份验证器实现动态口令验证
最近有用户反应我们现有的短信+邮件验证,不安全及短信条数限制和邮件收验证码比较慢的问题,希望我们 也能做一个类似银行动态口令的验证方式.经过对可行性的分析及慎重考虑,可以实现一个这样的功能. 怎么实现 ...
- Java使用google身份验证器实现动态口令验证
google身份认证器服务端key的生成和它生成的随机密码的验证: 客户端和服务器事先协商好一个密钥K,用于一次性密码的生成过程,此密钥不被任何第三方所知道.此外,客户端和服务器各有一个计数器C,并且 ...
- 关于Google身份验证器、基于时间的一次性密码 (TOTP)算法的初步了解
一.Google Authenticator 1.概述 Google Authenticator是基于双因素身份验证 ( 2FA ) 的应用程序,有助于识别用户身份并确认用户声称自己是谁以及他是否真的 ...
- Google身份验证器操作步骤
ctrl+alt+printScreen 截图 q+tab 补齐 一. 搜索Google Authenticator ssh date -s "2015-6-25 17:24" ...
- 【SpringBoot】61、SpringBoot中使用谷歌身份验证器(Google Authenticator)实现二步身份验证
Google 身份验证器 Google Authenticator 是谷歌推出的基于时间的一次性密码 (Time-based One-time Password,简称 TOTP),只需要在手机上安装该 ...
- 使用google authenticator(谷歌身份验证器)打造用户登录动态口令
google authenticator php 服务端 使用php类 直接下载 https://github.com/PHPGangsta/GoogleAuthenticator/raw/maste ...
最新文章
- 51nod 1225 余数之和(数论)
- cudnn下载_记录新电脑安装Ubuntu18.04,CUDA, cuDNN全过程
- error restore 01
- Unity3D之NGUI基础5:UISprite显示图片
- 在OSPF网络中,如何判断LSA的新旧?
- PHP 开源搜索引擎Yioop! 0.80 发布
- 扇贝有道180915每日一句
- DriverFinder(电脑驱动升级软件)官方正式版V4.1.0.0 | 最好的电脑驱动软件之一 | win10更新驱动用什么软件
- linux麒麟镜像,银河麒麟、优麒麟的软件源和镜像站
- 计算机科学与工程本科,加州大学洛杉矶分校计算机科学与工程本科申请条件.pdf...
- nginx or apache前端禁收录,爬虫,抓取
- setBounds()和setSize的区别
- 编写一个程序,输入月份号,输出该月份号的英文名称
- vba里有日文粘贴出来是乱码
- 立创eda专业版学习笔记(3)(隐藏部分飞线)
- [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)EHCache版本
- JS中Math对象的方法
- Google Adsense(谷歌网站联盟)广告申请指南
- 信贷反欺诈风险管理体系|附欺诈策略细则
- SpringBoot-多模块打包与问题排解
热门文章
- UPC 2020年春混合个人训练第十九场
- Geb UI 自动化手册(4: 页面内容交互)
- PSINS中19维组合导航模块sinsgps详解(滤波部分)
- stm32cubeide烧写程序_STM32 Cube IDE 下实现 IAP —— (1) 程序跳转
- AliPay - Java支付宝接口开发(三)
- 定积分求解(1)cos(bx)*e^(-x^2)在负无穷到正无穷的积分
- Marvell 88NV1120固态硬盘开卡图文教程+量产开卡软件下载
- sqlalchemy 系列教程五-Session和scopedsession
- 吐槽支付宝红包:逼公鸡下蛋的后果
- 什么知识库工具适合小团队?看看文档管理系统+NAS的最新解决方案