第44章 通过GoogleAuthenticator插件执行登录操作
119 CustomerChangeMultiFactorAuthenticationProviderEvent、MultiFactorAuthenticationProviderModel、MultiFactorAuthenticationModel
CustomerChangeMultiFactorAuthenticationProviderEvent类,“EventPublisher.PublishAsync”方法通过调用该类的实例,自动的从静态缓存数据库/分布式缓存数据库中,移除与指定用户多因素身份认证相关的一些缓存数据(不管这些缓存数据是否已经达到相应的缓存时间)。
MultiFactorAuthenticationProviderModel纪录,通过纪录及其成员,为多因素身份认组件在页面中的绑定及其显示提供数据支撑。
MultiFactorAuthenticationModel纪录,通过纪录及其成员,为我的多因素身份认证页面的绑定及其显示提供数据支撑。
- 取消Nop.Services.Installation.InstallationService.InstallSettingsAsync.MultiFactorAuthenticationSettings设置前的注释。
2、取消Nop.Services.Customers.CustomerRegistrationService.ValidateCustomerAsync方法中对下列语句的注释。
var selectedProvider = await _genericAttributeService.GetAttributeAsync<string>(customer, NopCustomerDefaults.SelectedMultiFactorAuthenticationProviderAttribute);
var methodIsActive = await _multiFactorAuthenticationPluginManager.IsPluginActiveAsync(selectedProvider, customer, (await _storeContext.GetCurrentStoreAsync()).Id);
if (methodIsActive)
return CustomerLoginResults.MultiFactorAuthenticationRequired;
2、重构Nop.Web.Infrastructure.RouteProvider.RegisterRoutes方法,取消对该方法中下列语句的注释。
//我的多因素身份认证提供程序配置页面的路由映射。
endpointRouteBuilder.MapControllerRoute(name: "CustomerMultiFactorAuthenticationProviderConfig",
pattern: $"{lang}/customer/providerconfig",
defaults: new { controller = "Customer", action = "ConfigureMultiFactorAuthenticationProvider" });
//我的多因素身份认证设定页面的路由映射。
endpointRouteBuilder.MapControllerRoute(name: "MultiFactorAuthenticationSettings",
pattern: $"{lang}/customer/multifactorauthentication",
3、重构Nop.Web.Factories.IcustomerModelFactory和Nop.Web.Factories.CustomerModelFactory,取消对下列方法的注释:
PrepareMultiFactorAuthenticationModelAsync
PrepareMultiFactorAuthenticationProviderModelAsync
4、在Nop.Web.Controllers.CustomerController定义以下方法:
ParseSelectedProviderAsync
MultiFactorVerification
MultiFactorAuthentication
[HttpPost] MultiFactorAuthentication
ConfigureMultiFactorAuthenticationProvider
GoogleAuthenticator插件执行登录操作
1、按F5通过初始化安装页面,安装数据库及其默认数据。
2、通过后台页面“https://localhost:44303/Admin/Authentication/MultiFactorMethods”启用GoogleAuthenticator插件,最终效果如下图:
3、通过前台页面“https://localhost:44303/customer/multifactorauthentication”对GoogleAuthenticator插件进行配置,最终效果如下图:
注意:先点击“保存”按钮把当前面中的设置数据信息持久化保存到数据库相应的表中。然后再点击“配置”按钮,以用于把当前程序与手机端“GoogleAuthenticator”进行绑定设定。
4、通过前台页面“https://localhost:44303/customer/providerconfig?providerSysName=MultiFactorAuth.GoogleAuthenticator” 把当前程序与手机端“GoogleAuthenticator”app进行绑定设定,最终效果如下图:
5、关闭整个浏览器,再重启使用本地登录后会直接跳转到“GoogleAuthenticator”多因子身份认证页面“https://localhost:44303/multi-factor-verification”,最终效果如下图:
6、只有再次输入手机端“GoogleAuthenticator”app中的“6”位数,才能访问授权页面。
注意:因为授权页面的访问必须先登录当前程序的注册用户,然后通过手机端“GoogleAuthenticator”app的身份认证后,才能被访问,这就是“GoogleAuthenticator”被称为多因素身份认证的原因。
对以上功能更为具体实现和注释见:22-04-12-044_Nop_4.40.4(通过GoogleAuthenticator插件执行登录操作)。
第44章 通过GoogleAuthenticator插件执行登录操作相关推荐
- selenium+谷歌执行登录操作
执行登录操作的方法很简单,只需要打开页面定位账号密码输入框和登录按钮就可以执行 from selenium import webdriver 添加模块 driver = webdriver.Chrom ...
- 发送短信验证码执行登录操作
短信服务介绍: 目前市场上有很多第三方提供的短信服务,这些第三方短息服务会和各个运营商(移动,联通,电信)对接,我们只需要注册成为会员,并且按照提供的开发文档进行调用就可以完成发送短信,需要说明的是, ...
- 如何解决Spring Data Maven构建的“生命周期配置未涵盖的插件执行”
我正在尝试使用Spring Data和Neo4j . 我首先尝试遵循主站点链接的本指南 . 特别是,我的pom.xml基于" Hello,World!". 示例文件 . 这是导致问 ...
- 第44章 MPU6050传感器—姿态检测—零死角玩转STM32-F429系列
第44章 MPU6050传感器-姿态检测 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...
- 第9章 maven的插件和生命周期
第9章 maven的插件和生命周期 本章介绍了maven生命周期.插件以及如何配置插件 9.1 生命周期 一般的项目都会经历这几个步骤:编译,测试,打包,部署,有些公司是手动方式,有些是自动化脚本方式 ...
- 【Android 插件化】VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )
文章目录 一.目前的 API 现状 二.安装应用源码分析 1.安装按钮执行的操作 2.返回到 HomeActivity 执行的操作 一.目前的 API 现状 下图是 VirtualApp 官方给出的集 ...
- 鸟哥的Linux私房菜(基础篇)- 第十九章、认识与分析登录文件
第十九章.认识与分析登录文件 最近升级日期:2009/09/14 当你的 Linux 系统出现不明原因的问题时,很多人都告诉你,你要查阅一下登录文件才能够知道系统出了什么问题了,所以说,了解登录文件是 ...
- php 安全基础 第七章 验证与授权 永久登录
7.4. 永久登录 永久登录指的是在浏览器会话间进行持续验证的机制.换句话说,今天已登录的用户明天依然是处于登录状态,即使在多次访问之间的用户会话过期的情况下也是这样. 永久登录的存在降低了你的验证机 ...
- dedecms织梦第三方登录插件-QQ登录、微博登录、微信登录
织梦程序集成第三方QQ登录.微博登录.微信登录,获取QQ.微博.微信,并存储至数据库,一键注册为网站会员,不用再次填写绑定信息,方便粘贴用户更强. 织梦第三方登录效果 第三方登录插件特点 1.所有文件 ...
最新文章
- ueditor1.4.3jsp版成功上传图片后却回显不出来与在线管理显示不出图片的解决方案...
- 树莓派应用实例2:环境温湿度测量
- 手机照片导入电脑步骤_手机录屏及电脑录屏操作步骤
- Web Socket 性能对比——Spring Boot vs Tomcat vs Netty
- matlab画孔斯曲面,CAD CAM技术基础:第五讲 孔斯曲面
- [Unity] ACT 战斗系统学习 5:使用 ScriptableObject 制作角色属性 1
- mongodb运算符使用
- ajax 回调数据 刷新table_Ajax gt;gt;gt; 001
- python数据结构剑指offer-重建二叉树
- 比大小 log_2^3 与 log_3^5
- 左移和右移运算符的重载问题(里面的绝对盲点)在做了一遍,还是出错了
- Mac上WineSkin游戏无法正常运行
- 图论的应用 计算机,图论的应用计算机技术与科学毕业论文.doc
- Windows最强ssh客户端推荐 —— Bitvise SSH Client(一)
- esp8266使用安信可IDE编译、烧录
- 剑指offer(专项突破版):数据结构与算法名企面试题精讲 刷题记录
- 数字化是实现“跨界打劫”的超级武器
- HTML基础教程 插图
- 二叉树的遍历和总结--C和C++
- 李笑来《韭菜的自我修养》笔记
热门文章
- 拉格朗日中值定理,柯西中值定理,积分中值定理,广义积分中值定理的证明.( 纯手写,细节)
- 修改sor文件的测试时间
- [Python 知识点]类的学习 做个儿时的小游戏
- 51单片机_11-2 蜂鸣器播放音乐
- 名场面!围观业内最强AI应用技术,8月AI能力又升级了
- Mac设置屏保后,显示屏保没有立即锁屏
- 每日一Lua(2)-语句
- .net C# 网页播放器 支持多种格式 媒体播放器 播放器 代码
- 必应终于把首页的图片替掉了。
- 电脑硬件正常温度该是多少?