
Laravel+Google验证器 实现后台二次验证
本文最后更新于 2023-12-16,文章内容可能已经过时,请注意发布时间。
title: Laravel+Google验证器 实现后台二次验证
id: dbdd41b6-f2df-4591-99e8-dfa195e6699d
date: 2023-12-11 00:41:25
auther: liqi
excerpt: 一、为什么要二次验证呢? 一机一码,不会存在账号盗用的问题 动态验证,每30秒生产一个验证码,安全更加保障 验证码有时候无法识别,复杂的验证码容易眼花缭乱,不方便操作 二、安装扩展包 1、首先要在你的Laravel项目中安装Google验证器插件、二维码生成器插件,执行命令如下: # Google验
permalink: /archives/b459596c-5883-4ceb-9847-7645ed310678
categories:
- fu-wu-duan
tags: - laravel
php
一、为什么要二次验证呢?
- 一机一码,不会存在账号盗用的问题
- 动态验证,每30秒生产一个验证码,安全更加保障
- 验证码有时候无法识别,复杂的验证码容易眼花缭乱,不方便操作
二、安装扩展包
1、首先要在你的Laravel项目中安装Google验证器插件、二维码生成器插件,执行命令如下:
# Google验证器插件安装命令:
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
],
三、正式使用
主要分为生成二维码和产生验证码,以接口形式展示如下代码:
//生成二维码
public function make_qrcode(){
// 获取google秘钥
$createSecret = GoogleAuthenticator::CreateSecret();
//生成二维码
$google["qrcode"] = \SimpleSoftwareIO\QrCode\Facades\QrCode::encoding('UTF-8')->size(180)->margin(1)->generate($createSecret["codeurl"]);
//生成的秘钥secret为唯一 存入后台用户的信息
$data['secret'] = $createSecret['secret'];
//数据库操作
// UsersModel::where('id',$id)->update($data);
//返回二维码图片 前端展示
if($google){
return json(200,'ok',$google);
}else{
return json(201,'fail');
}
}
生成验证码使用CreateSecret
即可,你需要将其内容生成二维码供手机APP扫描
//二次验证
public function check_code(Request $request){
//获取输入二次验证码
$code = $request->get('code');
//获取后台用户秘钥 可根据用户信息查出
$google = $request->get('google');
if(!$code || !$google){
return json(201,'fail');
}
if(GoogleAuthenticator::CheckCode($google,$code)){
return json(201,'登陆成功');
}else{
return json(201,'请正确输入手机上的动态验证码');
}
}
二次验证一般用于绑定,登录认证中,使用CheckCode
方法即可,需要传入secrect
和onecode
即验证码即可进行校验,第一个为secrect
;返回true
或false
匹配成功,成功登录、匹配失败,友好提示!😄
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 年糕崽崽
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果