fdstar / CheckCodeHelper

适用于发送验证码及校验验证码的场景(比如找回密码功能),目前提供了基于Redis、MemoryCache的存储实现,以及基于短信Sms(暂时实现亿美短信和阿里短信)、邮件的验证码发送实现,类库基于接口实现,可按自己实际需求扩展

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CheckCodeHelper

适用于发送验证码及校验验证码的场景(比如找回密码功能)
支持周期内限制最大发送次数,支持单次发送后最大校验错误次数
存储方案默认提供了RedisMemoryCache实现,你也可以自己实现ICodeStorage来支持其它存储方案。

GitHub license

Lib Version Summary .Net
CheckCodeHelper NuGet version (CheckCodeHelper) 主类库 .NET45.NET Standard 2.0
CheckCodeHelper.Sender.EMail NuGet version (CheckCodeHelper.Sender.EMail) 基于EMail的ICodeSender实现 .NET45.NET Standard 2.0
CheckCodeHelper.Sender.Sms NuGet version (CheckCodeHelper.Sender.Sms) 基于非模板短信的ICodeSender实现,默认提供emay短信实现 .NET452.NET Standard 2.0
CheckCodeHelper.Sender.AlibabaSms NuGet version (CheckCodeHelper.Sender.AlibabaSms) 基于阿里模板短信的ICodeSender实现 .NET45.NET Standard 2.0
CheckCodeHelper.Storage.Redis NuGet version (CheckCodeHelper.Storage.Redis) 基于Redis的ICodeStorage实现 .NET45.NET Standard 2.0
CheckCodeHelper.Storage.Memory NuGet version (CheckCodeHelper.Storage.Memory) 基于MemoryCache的ICodeStorage实现 .NET45.NET Standard 2.0

如何使用

你可以在此处查看使用例子 https://github.com/fdstar/CheckCodeHelper/blob/master/src/CheckCodeHelper.Samples

  • Program.PrevDemo()new显示声明方式实现的Demo
  • ComplexHelperTest.Net Core依赖注入方式实现的Demo
  • ConsoleSender为自定义ICodeSenderICodeSenderSupportAsync的例子

Release History

2021-11-30 Release

CheckCodeHelper v1.0.6
鉴于IComplexContentFormatterComplexHelper中作为构造参数传入,其本身可能已包含如何构造要发送的文本内容,故调整ComplexHelper.ComplexSetting.ContentFormatters为空未设置时,不再抛出异常

2021-11-22 Release

CheckCodeHelper v1.0.5
ComplexHelper公开读取配置的方法以支持某些特殊场景
ComplexContentFormatter调整唯一标志的组成方式,使其与ComplexHelper保持一致以减少字符串碎片
CheckCodeHelper.Storage.Redis v1.0.2
ICodeStorage.RemovePeriodAsync同时移除周期限制及错误次数记录
CheckCodeHelper.Storage.Memory v1.0.1
ICodeStorage.RemovePeriodAsync同时移除周期限制及错误次数记录

2021-11-03 Release

CheckCodeHelper v1.0.4
增加ICodeSenderSupportAsync以支持ICodeSender.IsSupport异步场景,如果ICodeSender同时实现了ICodeSenderSupportAsync,则CodeHelper会通过ICodeSenderSupportAsync.IsSupportAsync判断SendResult.NotSupport
修正ComplexHelper获取PeriodLimit时,如果未配置ComplexSetting.PeriodMaxLimits会导致ComplexSetting.PeriodLimitIntervalSeconds无效的问题

2021-10-20 Release

CheckCodeHelper.Storage.Redis v1.0.1
调整为通过Lua脚本合并执行Redis的多条更新指令

2021-10-18 Release

CheckCodeHelper v1.0.3
增加EffectiveTimeDisplayedInContent以调整验证码有效期在发送内容中的展示方式,ComplexHelper已支持该枚举,ComplexSetting.EffectiveTimeDisplayed默认设置为Seconds,即在所有的发送内容中以秒对应的数字进行展示,设置为Auto时如果有效时间为整360秒或以上且可被360整除,则展示为对应的小时数,有效时间为整60秒或以上且可被60整除,则展示为对应的分钟数
SendResult.NotSupprot修正拼写错误为SendResult.NotSupportVerificationResult.VerificationFailed简化为Failed。注意对于CheckCodeHelper这是破坏性调整,会造成升级后相关判断产生错误
CheckCodeHelper.Sender.EMail v1.0.3
移除不必要的Subject Func,同步调整TextFormatSubjectEMailMimeMessageSetting,注意对于EMail部分这是一个破坏性调整
CheckCodeHelper.Sender.AlibabaSms v1.0.0
基于阿里模板短信的ICodeSender实现

2021-07-20 Release

CheckCodeHelper v1.0.2
增加PeriodLimit.Interval以支持限制发送检验码的时间间隔
CheckCodeHelper.Sender.Sms v1.0.1
升级依赖的RestSharp版本至106.12.0以解决潜在的安全问题

2021-07-17 Release

CheckCodeHelper v1.0.1
增加ComplexHelper以统一在单个应用中校验码的发送与验证入口,支持按需调用指定的ICodeSender
CheckCodeHelper.Sender.EMail v1.0.2
增加Subject Func以支持ComplexHelper

2021-07-15 Release

CheckCodeHelper v1.0.0
主体功能
CheckCodeHelper.Sender.Sms v1.0.0
基于非模板短信的ICodeSender实现
CheckCodeHelper.Sender.EMail v1.0.1
基于EMail的ICodeSender实现
CheckCodeHelper.Storage.Redis v1.0.0
基于RedisICodeStorage实现
CheckCodeHelper.Storage.Memory v1.0.0
基于MemoryCacheICodeStorage实现

About

适用于发送验证码及校验验证码的场景(比如找回密码功能),目前提供了基于Redis、MemoryCache的存储实现,以及基于短信Sms(暂时实现亿美短信和阿里短信)、邮件的验证码发送实现,类库基于接口实现,可按自己实际需求扩展

License:MIT License


Languages

Language:C# 100.0%