springboot 手机短信验证码登录之手机短信验证码发送
2020-07-15 05:55
375 查看
登录页面
由于之前的登录页面功能单一,于是我在W3layouts网站下载了免费的登录页面进行改造。保留了原来的账号密码登录,新增加了注册和短信验证码登录的位置,同时预留了QQ登录的控件(按钮)。
效果如下:
1.账号密码登录模块:
2.短信验证码登模块:
如果输入的手机号数据库中没有,表明该手机号没有注册,得先注册才能进行验证码登录。
3.注册模块:
短信验证码登录
前言:只有注册了的手机号才能使用验证码登录功能。
实现过程:
1.阿里云—>搜索短信服务—>新手引导
跟着流程走:
…
注意:
1.申请短信签名和模版,因为项目面向的是国内,所以申请国内的签名和模版就行;
2.发送的短信是需要花钱的,只要保证阿里云上面余额超过一毛钱就可以发送(少量的)短信。
3.发送短信验证码的核心代码在openAPI Explorer中,要使用核心代码是最好现在其中先发送测试。
4.官网有坑
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.0</version> </dependency>
我在pom.xml中添加该版本(4.5.0)依赖老报错,解决方法:
点击:
复制使用其中的两个依赖,如果核心代码看不懂,Java SDK中有说明:
5.创建
Access Key ID和
Access Key Secret
2.springboot项目中使用
下面这个SendSms.java是官网核心的代码,我进行了一定的改造返回的是验证码。
生成验证码的类:生成6位数的验证码
public class GenerateCode { private static final String VERIFY_CODE = "0123456789"; public static String produceVerCode(){ char[] verCode =new char[6]; SecureRandom secureRandom= new SecureRandom(); for(int ini= 0; ini<verCode .length; ++ini){ verCode [ini]=VERIFY_CODE.charAt(secureRandom.nextInt(VERIFY_CODE.length())); } return new String(verCode ); } }
我把验证码存放到
Redis中,如果用户登录成功便删除,设定验证码时长为一分钟。
发送短信验证码接口,MiaoshaUserService类中方法存放验证码:
public String doSendVerCode(String mobile) throws GlobalException { //获取用户信息 MiaoshaUser miaoshaUser = getById(Long.parseLong(mobile)); if (miaoshaUser == null) { throw new GlobalException(CodeMsg.MOBILE_NOT_EXIST); } String verCode = UUIDUtils.uuid(); //发送验证码 String vCode = sendMsg(mobile); //存放验证码 redisService.set(MiaoshaUserKey.verCode, mobile, vCode); logger.info("verCode:" + vCode); return verCode; }
效果
点击发送验证码之后,
在Redis中,临时存放的验证码:
收到的短信:
成功登录,进入商品详情页:
相关文章推荐
- springboot+springsecurity+阿里云短信服务验证实现注册登录
- SpringBoot + SpringSecurity 短信验证码登录功能实现
- spring boot中如何实现在手机注册和登录时获取验证码(阿里短信服务)
- Java调用WebService接口实现发送手机短信验证码功能
- Java手机短信验证发送——阿里云
- 利用spring线程池ThreadPoolTaskExecutor发送手机短信
- OneThink发送手机短信验证APP接口
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- Java调用WebService接口实现发送手机短信验证码功能
- Springboot实现阿里云通信短信服务有关短信验证码的发送
- python实现发送和获取手机短信验证码
- Java调用WebService接口实现发送手机短信验证码功能
- Spring Boot使用HandlerInterceptorAdapter和WebMvcConfigurerAdapter实现原始的登录验证
- SpringBoot 整合Shiro 实现登录验证拦截功能
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- SpringBoot-4. thymeleaf+jpa实现增删改查与登录验证
- Springboot实现阿里云通信短信服务有关短信验证码的发送
- Spring boot +spring mvc+shiro 登录验证demo
- 登录手机短信验证码(tp5写的)