一、什么是双重认证

所谓双重认证简单来说就是除了用户名密码方式外,还额外增加了一道登录屏障。登录时先输入用户名和密码,正确后会向邮箱或手机号发送一个验证码(取决于您采用何种方式,甚至可以采用银行的电子KEY啥的),输入的验证码如果正确的话,才可以登录系统。

二、AbpZero中使用双重认证特别需要注意的地方

1.发送的内容中没有验证码!

AbpZero项目中AbpUserManager类的RegisterTwoFactorProviders方法主要用于指定可用的验证信息发送提供程序,该方法中定义了发送信息的内容,信息内容从语言包中读取,可是在语言包中并没有该项!

所以需要在语言包文件中Localization/XX/XX-zh-CN.xml中添加相应的语言项,需要注意的是语言项中的内容一定要添加占位符!不然发送的内容中是没有验证码的

2.如何使用短信发送验证码?

1.后台需要开启双重认证,使用手机号验证这个就不说了

2.需要在项目中定义一个类来实现IIdentityMessageService接口,重写SendAsync方法来实现信息发送

    /// <summary>
/// 发送信息验证码
/// </summary>
public class IdentitySmsMessageService : IIdentityMessageService, ITransientDependency
{
public ILogger Logger { get; set; } private readonly ISmsSender _iSMSSender; public IdentitySmsMessageService(ISmsSender iSMSSender)
{
Logger = NullLogger.Instance;
_iSMSSender = iSMSSender;
} public async Task SendAsync(IdentityMessage message)
{
/*
//TODO: Implement this service to send SMS to users. This is used by UserManager (ASP.NET Identity) on two factor auth.
Logger.Warn("Sending SMS is not implemented! Message content:");
Logger.Warn("Destination : " + message.Destination);
Logger.Warn("Subject : " + message.Subject);
Logger.Warn("Body : " + message.Body);
*/
var msg = new SmsMessage();
msg.Mobile = message.Destination;
msg.Content = message.Body;
await _iSMSSender.SendAsync(msg);
}
}

3.账号必须要有手机号(PhoneNumber)且手机号是验证过的(IsPhoneNumberConfirmed),如果当前登录账号不满足这两个条件,则只能选择邮箱方式(因为邮箱在注册时是必须填写的),这个坑太深真的太深了。

三、验证码和激活邮件有效期疑问

abpzero用户管理这块是基于identity framework实现的,查了很多资料,都没有看到验证码和激活邮件的过期时间,据说identity framework才会有这功能,不得不吐槽一下,太坑了。。。

AbpZero双重认证之短信的坑的更多相关文章

  1. github二次认证接收短信的问题

    这两天登陆github都被提示说我账号的密码已经被归类,提醒我修改密码. 改密码的时候发现GitHub有个二次认证的功能,分别是app和sms短信认证.app这里就不讲了,我们讲一下github的短信 ...

  2. 4、ABPZero系列教程之拼多多卖家工具 集成短信发送模块

    ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...

  3. ABP集成短信发送模块

    ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...

  4. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  5. PHP开发实用-阿里短信服务(Short Message Service)

    步骤 1 使用阿里云短信服务正常发短信需要 短信签名 短信模板 1申请短信签名   根据用户属性来创建符合自身属性的签名信息.企业用户需要上传相关企业资质证明,个人用户需要上传证明个人身份的证明.   ...

  6. Luffy之注册认证(容联云通讯短信验证)

    用户的注册认证 前端显示注册页面并调整首页头部和登陆页面的注册按钮的链接. 注册页面Register,主要是通过登录页面进行改成而成. 先构造前端页面 <template> <div ...

  7. 全新升级的WiFi无线上网短信认证系统,适用于咖啡厅、足浴等公共场所,提高门门店营业收入

    WiFi无线上网短信认证系统经历从1.0到1.88的升级,都是用户在使用过程中,提出宝贵的意见,一直修复至今,有着非常稳定的版本. 这个软件有什么作用?WiFi为什么要认证呢? 其实这个只是获取用户联 ...

  8. Spring Security构建Rest服务-1203-Spring Security OAuth开发APP认证框架之短信验证码登录

    浏览器模式下验证码存储策略 浏览器模式下,生成的短信验证码或者图形验证码是存在session里的,用户接收到验证码后携带过来做校验. APP模式下验证码存储策略 在app场景下里是没有cookie信息 ...

  9. 使用ASP.NET Identity以手机短信实现双重验证

    这篇文章将展示怎么使用SMS短信启动双重验证 创建一个ASP.NET 5项目 一开始,使用Visual studio 2015创建一个新的ASP.NET Web应用程序: 在下一步中选择ASP.NET ...

随机推荐

  1. win10 uwp 毛玻璃

    毛玻璃在UWP很简单,不会和WPF那样伤性能. 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃. 毛玻璃可以使用 win2D 方法,也可以使用 Compositor . 使用 win2d 得 ...

  2. php中常用的字符串格式化函数

    ltrim():从字符串左删除空格或其他预定义字符串 rtrim():从字符串的末端开始删除空白字符串或其它预定义字符 trim():从字符串的两端删除空白字符和其他预定字符 str_pad():把字 ...

  3. IDEA搭建SpringMVC+Mybatis+Mysql+Maven框架

    相关环境 Intellij IDEA Ultimate Tomcat JDK MySql 5.6(win32/win64) Maven (可使用Intellij IDEA自带的) 搭建步骤 创建项目工 ...

  4. 我推荐的 Java Web 学习路线

    晚上再 V2 的 Java 的节点看到有人问 Java Web 书籍推荐.我这半年多的时间,也从别的方向开始转向 Java 服务端开发,所以,我来说下我的学习路线,帮助有需要的朋友把半只脚踏进 Spr ...

  5. 关于 SVN 项目检出

    前几天呢,同事遇到这么一个问题:他新建了一个工作空间,当他通过 svn 检出公司项目的时候,准备过来测试运行,但是呢出现了下面的报错 [ERROR] Failed to execute goal or ...

  6. css基础语法一(选择器与css导入方式)

    页面中,所有的CSS代码,需要写入到<style></style>标签中.style标签的type属性应该选择text/css,但是type属性可以省略. CSS修改页面中的所 ...

  7. 第三章 CUDA设备相关

    这章介绍了与CUDA设备相关的参数,并给出了了若干用于查询参数的函数. 章节代码(已合并): #include <stdio.h> #include "cuda_runtime. ...

  8. Group(), Groups(),& Groupdict()

    group() 返回一个或多个匹配的字串.如果只有一个参数,结果只有单个字符串:如果有多个参数,结果是一个元组,元组里每一项对应一个参数.没有参数,group1默认是0(整个匹配串被返回).如果gro ...

  9. css媒体查询:响应式网站

    css媒体查询:响应式网站 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定的设备范围. ...

  10. jQuery选择器(属性过滤选择器)第六节

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...