搜索
首页Javajava教程Java与JavaScript前后端怎么实现手机号验证码一键注册登陆

一、一键注册登录流程

Java与JavaScript前后端怎么实现手机号验证码一键注册登陆

二、前端

2.1. 验证码获取流程

1.点击->获取验证码调用后端获取验证码api接口

2.验证码59秒倒计时

3.重复点击获取验证码,判断验证码倒计时是否大于0:

  • 如果大于0,获取验证码按钮不可触摸

  • 如果等于0,获取验证码调用后端获取验证码api接口

2.2. 验证码获取代码

	var serverUrl = app.globalData.serverUrl;
				// 调用后端发送验证码
				uni.request({
					method: "POST",
					url: serverUrl + "/passport/getSMSCode?mobile=" + mobile,
					success(result) {
						var status = result.data.status;
						if (status != 200) {
							uni.showToast({
								title: result.data.msg,
								icon: "none"
							});
						}
						// 开始倒数60秒限制
						if(me.codeTimes == 0) {
							me.doTimer(59);
						}
					}
				});	
			},
			// 发送验证码的倒计时方法
			doTimer(times) {
				var me = this;
				// 倒计时定时器
				var sendCodeBtnFunction = function(){
					var left = times--;
					if (left <= 0) {
						me.codeTouched = false;
						me.codeBtnText = "发送验证码";
						clearInterval(smsTimer);
					} else {
						me.codeBtnText = left + "s";
					}
					me.codeTimes = left;
				};
				var smsTimer = setInterval(sendCodeBtnFunction, 1000);
			},

三、后端验证码

3.1. 前置处理

由于为了避免频繁获取验证码导致无效的操作,因此,对验证码获取逻辑需要进行前置拦截处理。

根据用户ip进行限制,限制用户在60秒之内只能获得一次验证码

先进入->验证码前置拦截处理:

1.获取用户的ip

2.验证码redis存储key的前缀+获取用户的ip当做redis中的key,从redis中获取已经存储的请求请求ip

  • 如果redis中存在未过期的用户请求ip,则提示"短信发送太快啦~请稍后再试!"

  • 如果redis中,不存在用户请求ip,则放行,继续调用获取验证码接口api

Java与JavaScript前后端怎么实现手机号验证码一键注册登陆

3.2. 拦截器添加

Java与JavaScript前后端怎么实现手机号验证码一键注册登陆

3.3. 获取验证码

1.对输入框填写的数据进行校验,不合法则提示,合法继续。

2.获得用户请求ip

3.根据用户ip进行限制,限制用户在60秒之内只能获得一次验证码

4.生成随机6位验证码

5.调用腾讯/阿里短信服务,发送验证码

6.把验证码放入到redis中,用于后续的验证

7.返回验证码

Java与JavaScript前后端怎么实现手机号验证码一键注册登陆

以上是Java与JavaScript前后端怎么实现手机号验证码一键注册登陆的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:亿速云。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境