SkillAgentSearch skills...

CheckCodeHelper

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

Install / Use

/learn @fdstar/CheckCodeHelper
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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 |<div style="width:100px">CheckCodeHelper.Storage.Redis v1.0.1</div>| |:--| |调整为通过Lua脚本合并执行Redis的多条更新指令|

2021-10-18 Release |CheckCodeHelper v1.0.3| |:--| |增加EffectiveTimeDisplayedInContent以调整验证码有效期在发送内容中的展示方式,ComplexHelper已支持该枚举,ComplexSetting.EffectiveTimeDisplayed默认设置为Seconds,即在所有的发送内容中以秒对应的数字进行展示,设置为Auto时如果有效时间为整360秒或以上且可被360整除,则展示为对应的小时数,有效时间为整60秒或以上且可被60整除,则展示为对应的分钟数<br> 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实现|

Related Skills

View on GitHub
GitHub Stars12
CategoryDevelopment
Updated1y ago
Forks6

Languages

C#

Security Score

75/100

Audited on Oct 16, 2024

No findings