今天,准备在ABP vNext上拓展一下短信登录,流程很简单:用户请求发送验证码接口,后台生成验证码,然后发送到用户手机,用户收到验证码,使用拓展授权方式SMSGrantType获取令牌,完成授权。
首先,关于验证码生成,为了避免生成存储到本地再校验一般采用TOTP加密算法,它是基于时间的一次性密码生成算法,由 RFC 6238 定义。和基于事件的一次性密码生成算法不同 HOTP,TOTP 是基于时间的,在有效时间过后,针对同一用户所生成的验证码将会发生改变。
AspNetCore已经在其TOTP- (2FA) 双因素身份验证 里借助Rfc6238AuthenticationService实现了加密,我去翻了一遍源码,大概调用流程如下:
实现原理 => 加密实现 => 加密调用 => 认证调用 => 使用示例
然后,我们可以借助这个加密算法来进行短信验证码生成,通过拓展IDS4的grant_type来做一个SMSGrantType的授权方式。
第一步,生成验证码
ASP.NET Core实现短信验证码登录:TOTP加密与自定义授权

本文介绍了如何在ABPvNext平台上通过TOTP算法生成短信验证码,并扩展IdentityServer实现SMSGrantType授权,详细步骤包括验证码生成、自定义授权验证和模块配置。
最低0.47元/天 解锁文章
2304

被折叠的 条评论
为什么被折叠?



