AbpZero双重认证之短信的坑
一、什么是双重认证
所谓双重认证简单来说就是除了用户名密码方式外,还额外增加了一道登录屏障。登录时先输入用户名和密码,正确后会向邮箱或手机号发送一个验证码(取决于您采用何种方式,甚至可以采用银行的电子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双重认证之短信的坑的更多相关文章
- github二次认证接收短信的问题
这两天登陆github都被提示说我账号的密码已经被归类,提醒我修改密码. 改密码的时候发现GitHub有个二次认证的功能,分别是app和sms短信认证.app这里就不讲了,我们讲一下github的短信 ...
- 4、ABPZero系列教程之拼多多卖家工具 集成短信发送模块
ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...
- ABP集成短信发送模块
ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...
- SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能
在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...
- PHP开发实用-阿里短信服务(Short Message Service)
步骤 1 使用阿里云短信服务正常发短信需要 短信签名 短信模板 1申请短信签名 根据用户属性来创建符合自身属性的签名信息.企业用户需要上传相关企业资质证明,个人用户需要上传证明个人身份的证明. ...
- Luffy之注册认证(容联云通讯短信验证)
用户的注册认证 前端显示注册页面并调整首页头部和登陆页面的注册按钮的链接. 注册页面Register,主要是通过登录页面进行改成而成. 先构造前端页面 <template> <div ...
- 全新升级的WiFi无线上网短信认证系统,适用于咖啡厅、足浴等公共场所,提高门门店营业收入
WiFi无线上网短信认证系统经历从1.0到1.88的升级,都是用户在使用过程中,提出宝贵的意见,一直修复至今,有着非常稳定的版本. 这个软件有什么作用?WiFi为什么要认证呢? 其实这个只是获取用户联 ...
- Spring Security构建Rest服务-1203-Spring Security OAuth开发APP认证框架之短信验证码登录
浏览器模式下验证码存储策略 浏览器模式下,生成的短信验证码或者图形验证码是存在session里的,用户接收到验证码后携带过来做校验. APP模式下验证码存储策略 在app场景下里是没有cookie信息 ...
- 使用ASP.NET Identity以手机短信实现双重验证
这篇文章将展示怎么使用SMS短信启动双重验证 创建一个ASP.NET 5项目 一开始,使用Visual studio 2015创建一个新的ASP.NET Web应用程序: 在下一步中选择ASP.NET ...
随机推荐
- Python学习笔记(七)
Python学习笔记(七): 深浅拷贝 Set-集合 函数 1. 深浅拷贝 1. 浅拷贝-多层嵌套只拷贝第一层 a = [[1,2],3,4] b = a.copy() print(b) # 结果:[ ...
- 原生JS实现淘宝无缝轮播
<!DOCTYPE html ><html><head><meta http-equiv="Content-Type" content=& ...
- Lustre文件系统测试——obdfilter-survey测试
Lustre文件系统测试--obdfilter-survey测试 介绍 该测试主要是在lustre文件系统工作环境下进行,将直接在ost上生成工作负载模拟并行文件访问,可准确检测盘阵在lustre文件 ...
- IT 圈里有哪些经常被读错的词?
原文链接:IT 圈里有哪些经常被读错的词? ()标相应英文单词[]标音标 =====公司/产品名===== Youtube (You-tube [tju:b]) 念 优tiu啵 不念 优吐毙Skype ...
- A low-cost wear-leveling algorithm for block-mappingsolid-state disks
[] Li-Pin Chang,Li-Chun Huang.A low-cost wear-leveling algorithm for block-mapping solid-state disks ...
- PHP5.6+7代码性能加速-开启Zend OPcache-优化CPU
说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的).对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法 ...
- 217. Contains Duplicate (leetcode)
Given an array of integers, find if the array contains any duplicates. Your function should return t ...
- 跨站请求伪造(CSRF)-简述
跨站请求伪造(CSRF)-简述 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 ...
- sql执行报错--This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
问题: 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询,即是支持非 IN/ALL/ANY/SOME 子查询的 LIMIT 子查询. 解决: 将语句:select * from ...
- 个性化推荐系统(七)--- ABTest ab测试平台
个性化推荐系统.搜索引擎.广告系统,这些系统都需要在线上不断上线,不断优化,优化之后怎么确定是好是坏.这时就需要ABTest来确定,最近想的办法.优化的算法.优化的逻辑数据是正向的,是有意义的,是提升 ...