Spring实现短信验证码登录
基本说明
短信验证码:网站或者客户端应用需要接入短信验证码(手机验证码)的功能,可以实现注册用户的手机号码正确性校验,确保用户填写的手机号码的真实性。
实现原理:发送短信的服务一般是由第三方短信服务商提供的,系统先生成一个验证码,调用第三方服务商的短信接口,发送到手机方,手机方输入验证码,再由系统去校验是否符合,符合则说明手机真实有效。
技术核心:后台下发一条随机码X,网页客户端通过算法将用户信息和随机码X合并,生成一条字符串Y,并返回给后台;后台用同样的算法处理这条随机码X和后台存储的用户信息,得到一条字符串Z。后台比对来自客户端的字符串Y和自己生成的字符串Z,如果两者一致,则确认用户身份。
开通短信验证码服务
详见(以腾讯云为例):腾讯云短信发送验证码(超详细)
SpringBoot开发
build.gradle,依赖
1 | // 腾讯短信验证码服务依赖 |
application.properties,配置
1 | # SecretId 用于标识 API 调用者的身份 |
SMSRandomHelper,生成随机验证码
1 | import org.springframework.stereotype.Component; |
SMSHelper,发送验证码短信,工具类
1 | import com.tencentcloudapi.common.Credential; |
SmsService,发送验证码短信,服务类
1 |
|
VerifyService,短信验证码认证,发送+认证
1 |
|