开发前的准备

  1. 安装Laravel
  2. 安装二维码生成器QrCode,没有安装也可以,接下来会安装

安装拓展

1、运行如下代码安装拓展包:

composer require "earnp/laravel-google-authenticator:dev-master"
### 安装二维码生成器
composer require simplesoftwareio/simple-qrcode 1.3.*
​

2、等待下载安装完成,需要在config/app.PHP中注册服务提供者同时注册下相应门面:

​'provIDers' => [
//........
Earnp\GoogleAuthenticator\GoogleAuthenticatorServiceprovIDer::class,
SimpleSoftwareIO\QrCode\QrCodeServiceProvIDer::class,
],
'aliases' => [
//..........
'Google' => Earnp\GoogleAuthenticator\Facades\GoogleAuthenticator::class,
'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class
],
​

3、服务注入以后,如果要使用自定义的配置,还可以发布配置文件到config/vIEws目录:


​
1 ###这一步可以不执行:视情况而定
2 php artisan vendor:publish
​

使用一(项目中使用)

使用方法非常简单,主要为生成验证码和校验验证码

1、生产验证码

生产验证码使用CreateSecret即可,你需要将其内容生成二维码供手机APP扫描,具体内容在Google.blade.PHP中已经配置成功


​
public function addUser(Request $request)
{
if($request->isMethod('get')){
// 创建谷歌验证码
$createSecret = GoogleAuthenticator::CreateSecret();
//$createSecret = [
// "secret" => "NJURUPQN6XNYGSF2"
// "codeurl" => "otpauth://totp/?secret=NJURUPQN6XNYGSF2"
//]
// 生成二维码
$createSecret["qrcode"] = QrCode::enCoding('UTF-8')->size(180)->margin(1)->generate($createSecret["codeurl"]);
//发送页面
return vIEw('auth.auth.add',['Google'=>$createSecret]);
}
//获取数据
$user_from = $request->only(['role_ID','username','pass','pass_confirmation','real_name','mobile','secret']);
//保存入库 secret会存入数据库
$auth_user = new AuthUserService();
$res = $auth_user->addUser($user_from);
return redirect('admin/auth/index');
}
​

2、校验验证码


​
//登录验证
public function login(array $param)
{
$model = new Authusermodel();
//Google 验证
if(!GoogleAuthenticator::CheckCode($userInfo['secret'],$param['secret'])){
return ['status'=>false,'msg'=>['secret'=>['验证码错误,请重新输入']]];
}
$update = $model->editLoginInfo($userInfo['ID'], $update);
if(!$update){
return ['status'=>false,'msg'=>['username'=>'更新登录信息失败']];
}else{
return ['status'=>true,'data'=>$userInfo];
}
}
​

使用二(Demo)

1、校验验证码

校验验证码一般用于绑定,登录认证中,使用CheckCode方法即可,需要传入secrectonecode即验证码即可进行校验,第一个为secrect;返回truefalse

​if(Google::CheckCode($Google,$request->onecode)) {
// 绑定场景:绑定成功,向数据库插入Google参数,跳转到登录界面让用户登录
// 登录认证场景:认证成功,执行认证操作
dd("认证成功");
}else {
// 绑定场景:认证失败,返回重新绑定,刷新新的二维码
return back()->with('msg','请正确输入手机上Google验证码 !')->withinput();
// 登录认证场景:认证失败,返回重新绑定,刷新新的二维码
return back()->with('msg','验证码错误,请输入正确的验证码 !')->withinput();
}
​

这里有一个具体的实际事例:

​use Google;
if ($request->isMethod('post')) {
if (empty($request->onecode) && strlen($request->onecode) != 6) return back()->with('msg','请正确输入手机上Google验证码 !')->withinput();
// Google密钥,绑定的时候为生成的密钥;如果是绑定后登录,从数据库取以前绑定的密钥
$Google = $request->Google;
// 验证验证码和密钥是否相同
if(Google::CheckCode($Google,$request->onecode)) {
// 绑定场景:绑定成功,向数据库插入Google参数,跳转到登录界面让用户登录
// 登录认证场景:认证成功,执行认证操作
dd("认证成功");
}else {
// 绑定场景:认证失败,返回重新绑定,刷新新的二维码
return back()->with('msg','请正确输入手机上Google验证码 !')->withinput();
// 登录认证场景:认证失败,返回重新绑定,刷新新的二维码
return back()->with('msg','验证码错误,请输入正确的验证码 !')->withinput();
}
}else {
// 创建谷歌验证码
$createSecret = Google::CreateSecret();
// 您自定义的参数,随表单返回
$parameter = [["name"=>"usename","value"=>"123"]];
return vIEw('login.Google.Google', ['createSecret' => $createSecret,"parameter" => $parameter]);
}
​

Laravel实现google-authenticator--Google二维码验证器相关推荐

  1. 拼图登陆拼图二维码验证_如何使用拼图快速轻松地构建静态网站

    拼图登陆拼图二维码验证 by Rick West 由里克·韦斯特(Rick West) 如何使用拼图快速轻松地构建静态网站 (How to use Jigsaw to quickly and easi ...

  2. 拼图登陆拼图二维码验证_另一个拼图观点

    拼图登陆拼图二维码验证 在过去的几周中,围绕Java 9即将发布及其最著名的功能:Java平台模块系统JPMS进行了激烈的辩论. –以其项目名称Jigsaw更为人所知. 模块系统以正式规范过程的形式引 ...

  3. Android 基于google Zxing实现二维码 条形码扫描,仿微信二维码扫描效果

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 转载请注 ...

  4. Android基于Google Zxing实现二维码/条形码扫描、生成二维码/条形码

     二维码/条形码生成器 二维码/条形码扫描器 一.二维码与条形码工作原理 目前的很多应用上都有扫码功能,当时微信推出二维码扫码功能时,觉得imagine,通过一张简单的图片就能扫描添加还有,还有分 ...

  5. Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新 ...

  6. Android 基于google Zxing实现二维码、条形码扫描

    首先我们看下项目结构 (1) 首先我们从扫描二维码Activity MipcaActivityCapture.Java 类入手该类主要是调用相机预览拍照内容,处理扫描后的结果,扫码成功震动,及扫描音效 ...

  7. 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新 ...

  8. Android开发之google Zxing实现二维码扫描的代码分析

    1.技术简介    在Android中实现二维码的扫描主要是通过第三方框架来实现的,主要框架是google的Zxing.现在就用该框架来实现二维码及条形码的扫描及识别,同时对于手机中存储的图片也进行识 ...

  9. Google Zxing 生成二维码

    Net Zxing 源码地址 http://zxingnet.codeplex.com/ github 地址 https://github.com/zxing/zxing 新建一个Winform 项目 ...

最新文章

  1. python类_python类和对象
  2. Cisco路由器的Flash和NVRAM
  3. @requirespermissions注解是什么意思_如何基于spring开发自定义注解实现对接口访问频次限制?...
  4. ip_vs实现分析(2)
  5. 【转】3.4(译)构建Async同步基元,Part 4 AsyncBarrier
  6. 作者:钱卫宁,华东师范大学数据科学与工程研究院教授、博士生导师。
  7. c语言中递增递减运算符,递增++和递减-C ++中的运算符
  8. makefile中的wildcard
  9. Android dalvik GC相关的属性详解
  10. inDesign教程,如何创建、修改和使用母版页?
  11. Leetcode994腐烂的橘子(宽搜)
  12. 【Merry Christmas】圣诞节,给博客添加浪漫的下雪效果!
  13. 干货分享|E-prime 3入门手册
  14. Python设置显示屏分辨率
  15. #英语# 表示人的名词后缀论文文献
  16. 【巴比特:区块链是什么】笔记
  17. time_wait,不要乱用tcp_tw_recycle和net.ipv4.tcp_tw_reuse
  18. Java设计模式之行为型:中介者模式
  19. python——django连接html登陆界面
  20. 本机器禁止访问mysql服务器_限制指定机器IP访问oracle数据库

热门文章

  1. 长期连载_ [置顶]马浩然(AH)语录或机房日常[学习无关]
  2. [普通物理]波动方程
  3. Treasure Hunting Codeforces Round #577 (Div. 2)
  4. 计算机基础英语文档,最强计算机基础英语总结
  5. vertical-align的用法
  6. vite+element-plus项目基础搭建
  7. IA-32寄存器(通用寄存器、EFLAGS寄存器、指令指针寄存器、段寄存器)
  8. 我的地盘,我做主!~
  9. ComM(通信管理)和CanNm(network)
  10. js内容混淆,返回内容加密