我的编程空间,编程开发者的网络收藏夹
学习永远不晚

谷歌二次验证 Google Authenticator

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

谷歌二次验证 Google Authenticator

后台登录要搞令牌,类似于steam令牌、企鹅令牌等等

开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。

实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。

流程如下

大致流程

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

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

等待下载安装完成,需要在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],

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

php artisan vendor:publish

注意绑定视图位置为resources/views/login/google/google.blade.php,然后您可以在config/google.php中修改账号名绑定验证地址

// 创建谷歌验证码
$createSecret = GoogleAuthenticator::CreateSecret();
//$createSecret = [
// "secret" => "NJURUPQN6XNYGSF2"
// "codeurl" => "otpauth://totp/?secret=NJURUPQN6XNYGSF2"
//]
// 生成二维码
$createSecret["qrcode"] = QrCode::enCoding('UTF-8')->size(180)->margin(1)->generate($createSecret["codeurl"]);
核心就是生成二维码之后,主要就是secret串,用手机app扫一扫就添加到验证器上面了

然后 服务端将生成的secret 串与用户进行绑定

下面是展示二维码的代码,用以进行绑定secret 串,如果绑定过就不再展示了

// 判断该用户是否已经存在google秘钥、没有重新生成
        if (empty($user['secret']) && $user['google_status'] === 0) {
            // 获取google秘钥
            $google = GoogleAuthenticator::CreateSecret();
            // 生成二维码
            $google["qrcode"] = QrCode::encoding('UTF-8')->size(180)->margin(1)->generate($google["codeurl"]);
        } else {
            $google['secret'] = $user['secret'];
            $google_url = "otpauth://totp/?secret=" . $user['secret'];
            // 生成二维码
            $google["qrcode"] = QrCode::encoding('UTF-8')->size(180)->margin(1)->generate($google_url);
        }

 

最后用户进行提交code,用绑定的secret 串 来校验

// 判断该用户是否开启google验证
    // 将用户输入的验证码与秘钥进行匹配
    if(1 === $user['google_status']){
        // Google验证码与秘钥进行匹配
        if(!GoogleAuthenticator::CheckCode($user['secret'],$param['secret'])){
           return '匹配成功';
        }
    }

然后可以继续登录后续业务了,如果要取消 只需要 删除user绑定的secret串就可重绑了。

来源地址:https://blog.csdn.net/qiuziqiqi/article/details/131067316

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

谷歌二次验证 Google Authenticator

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android中新引进的Google Authenticator验证系统工作原理浅析

为了改进Android的安全问题,Google在Android系统中引入了谷歌验证应用(Google Authenticator)来保证账号的安全。谷歌验证应用的使用方法是:用户安装手机客户端,生成临时身份验证码,提交到服务器验证身份,类似
2022-06-06

亚马逊二次验证认证服务器

亚马逊VerifiedbyAmazon(V2V)认证服务器是一种身份验证机制,它通过在用户访问网站或应用程序时验证用户的身份,来防止恶意用户访问或欺诈行为。当用户登录亚马逊网站或应用程序时,VerifiedbyAmazon(V2V)认证服务器会向用户提供一个临时凭证,该凭证可以使用户访问更具安全性,并防止其他人未经授权访问您的账户。VerifiedbyAmazon(V2V)认证服务器通常采用先进的加密技术和多因素身份验证机制,以确保用户的账户信息和...
2023-10-27

Java微信二次开发(一) Java微信请求验证功能

准备用Java做一个微信二次开发项目,把流程写在这里吧。第一篇,做微信请求验证需要导入库:servlet-api.jar第一步:新建包com.wtz.service,新建类LoginServlet.javapackage com.wtz.s
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录