| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> Laravel 下实现 Google 2fa 验证 -> 正文阅读 |
|
[PHP知识库]Laravel 下实现 Google 2fa 验证 |
最近有个项目需要用到?Google 2fa 验证,第一次接触,跟着教程来做! 1.首先安装?Google 2fa
安装完后,我显示的默认版本是2.0??"pragmarx/google2fa-laravel": "^2.0", 2.配置 Google 2fa 在config/app.php
3.生成 Google2fa 的配置文件
然后就会发现在config 里面多了 google2fa.php 的文件,我所有配置都是用默认值,没有修改。 接下来就是调用 1.打开Kernel.php 文件,在$routeMiddleware 中加入google2fa 中间件,如下
‘2fa’ 就是中间件,根据路径打开文件,代码如下:
可以看出,这里有个方法isAuthenticated(),这是用来判断是否属于有通过 google2fa 的登录验证 2.创建google2fa 登录界面 首页打开config/google2fa.php 在里面找到这个
这是配置登录页面的路径,这是默认的,当然也可以自定义 这是我的登录页面的样式,代码就不公布 ?因为最终的是6位数的验证码,所以这里密码也是6位 3. ?generateSecretKey 在用户表中(我的用户表名是user),新增一个字段?google2fa_secret,这是用于保存用户的secret_key,secret_key的作用下面会说的 生成?secret_key 的代码如下:
将返回值保存到user的google2fa_secret 字段就可以了! 4.使用app Authenticator? 绑定user 我的做法是这样的, 首先生成一个URL,这是google2fa自带的方法, 然后根据这个URL 再生成一个二维码, 最后使用?Authenticator 扫描这个二维码,执行绑定。 代码如下
getQRCodeUrl 的对应参数是这样:
$secretKey 是刚才生成secret_key,至于Qrcode 是我之前安装好的生成二维码的方法,安装及使用方法我其他文章有写,这里不重复,当然也可以使用其他生成二维码的插件 5.创建?GoogleTokenController.php 主要作用是验证提交上来的验证码是否正确,代码如下:
6.Controller 中添加中间件
在有需要的Controller 中添中间件,auth 是laravel 自带的 登录中间件, 2fa 就是刚才添加的 google2fa的中间件,分别是验证第一次登录和第二次登录 现在基本已经完成了,再重新整理一次流程 1.安装和配置插件 2.创建新用户时候添加 secret_key 3.生成二维码,用?Authenticator? 绑定这用户 4.Authenticator 中点击用户,会生成6位数的验证码,填入登录页面提交验证 完成 具体的详细方法,在下载完插件后,里面有个README.md ,位置在这:vendor\pragmarx\google2fa-laravel 教程唯一没说的是 这行代码,我在网上找了很久才找到
实现google2fa 登录的持久化 |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/22 19:41:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |