小黑小波比.nodejs密码找回方式----手机找回

服务端:

基本框架

//方法名称:
tel: {
	attribute: { //这里用来确定用户是否登录状态
	},
	method: function(e) {
		var _ = this.apis;

		//检查手机号码是否存在
		app.awf.task({
			//添加数据库sql方法
			//成功进入下一个task
		}).task({ //添加数据库sql方法
			//成功进入下一个task
		}).task({
			//添加数据库sql方法
			//成功进入下一个task
		}).task({
			//添加数据库sql方法
			//成功进入下一个task
		}).task({
			//添加数据库sql方法
			//成功进入下一个task
		}).await({ 
			//当返回成功或者失败 调用这里的函数来返回值});}
		});
	}
}



tel:{
},//注意这里
code:{
}

下面贴上我的服务端的js代码

/**
 * sign应用auth处理类
 *
 * 用户授权处理类
 *
 *读取例子 http://127.0.0.1:9080/api/admin/passwordrecover.tel?params={"tel":"22222"}
 *保存例子 http://127.0.0.1:9080/api/admin/person.save?params={"e":"lyb@wxy.com","t":"13811641164","s":"1","n":"lyb"}
 * @category  task
 * @class auth
 * @namespace task.sign
 * @author SDark
 * @since
 *  2014.09.09 lyb创建邮箱找回和密码找回
 */

var task = {};

task.code = "admin.passwordrecover";

task.name = "admin.passwordrecover";

task.description = "验证手机号和验证码";

/**
 * 依赖api项
 */
task.deps = {
	sql: "common.sql",
	sqlls: "common.biz",
	msg: "common.msg"
};
/**
 * 任务标记
 * @attribute attribute
 */
task.attribute = {};

task.tasks = {
	tel: {
		attribute: {
			//"user":true
		},
		method: function(e) {
			var _ = this.apis;
			//调用字段名处理
			//var utype = 1;//e.action.user.utype;
			//检查手机号码是否存在
			app.awf.task({
				code: "One",
				method: function(ex) {
					var sql = "select * from userbase where telphone=:telphone";
					console.info(sql)
					_.sqlls.query(sql, {
						telphone: e.params.tel
					}).success(function(rows) {
						if (rows.length <= 0) {
							ex.error("学生电话不存在!<br/>请确认您的手机号!");
							ex.failure({
								data: false
							});
						} else {
							ex.success({
								data: true
							});
						}
					}).failure(function(err) {
						ex.error(err);
					});
				}
				/*

				console.log(result);
				function addNumber(_idx) {
					var str = '';
					for (var i = 0; i < _idx; i += 1) {
						str += Math.floor(Math.random() * 10);
					}
					return str;
				}
				addNumber(6);
				console.log(addNumber(6));
				e.result({
					status:1
					//如果要返回结果,那么就去掉大括号{}
					//status:1//如果想查看返回值都有什么,写a:status

				});
			}).failure(function(){
				console.log("没查到数据!失败!failure");
				e.result({
					status:2
				});
		}*/
			}).task({
				code: "Two",
				method: function(ex) { //检查该电话是否存在的验证码,如果不存在验证码,会不断的给手机发短信
					var sql = "select * from user_check where telphone=:telphone and status=1 and :now<=timeout and :now>=createtime";
					console.info(sql)
					_.sqlls.query(sql, {
						telphone: e.params.Tel,
						now: Date.now() - 946684800000
					}).success(function(rows) {
						if (rows.length > 0) {
							ex.error("当前验证码还处于有效状态,不能重复获取!");
						} else {
							ex.success({
								data: true
							});
						}
					}).failure(function(err) {
						ex.error(err);
					});
				}

			}).task({
				code: "Three",
				method: function(ex) { //重置验证码 可不要
					var sql = "update user_check set status=3 where telphone=:telphone";
					console.info(sql)
					_.sqlls.query(sql, {
						telphone: e.params.Tel
					}).success(function(rows) {
						ex.success({
							data: true
						});
					}).failure(function(err) {
						ex.error(err);
					});
				}

			}).task({
				code: "Four",
				method: function(ex) { //短信发送
					var syspassword = addNumber(6); //这里验证码,有可能重复和少几位数
					function addNumber(_idx) {//这里可以单独为一个js文件来测试
						var str = '';
						for (var i = 0; i < _idx; i += 1) {
							str += Math.floor(Math.random() * 10);
						}
						return str;
					}<pre name="code" class="javascript"><span style="white-space:pre">					</span>// _.msg.send(e.params.Tel,
					// 	syspassword
					// ).success(function(rows) {
					// 	ex.success({
					// 		data: syspassword
					// 	});
					// }).failure(function(err) {
					// 	ex.error(err);
					// });
					ex.success({
						data: syspassword
					});
				}
			}).task({
				code: "Five",
				method: function(ex) { //保存验证码
					var sql = "insert into user_check(telphone,checkinfo,timeout,createtime,status) values(:telphone,:checkinfo,:timeout,:createtime,1);";
					console.log(sql);
					_.sqlls.query(sql, {
						telphone: e.params.tel,
						checkinfo: ex.get("Four").data,
						timeout: Date.now() - 946684800000 + 100000,
						createtime: Date.now() - 946684800000
					}).success(function(rows) {
						ex.success({
							data: true
						});
					}).failure(function(err) {
						ex.error(err);
					});
				}
			}).await({
				success: function(ex) {
					e.result({
						"successTag": true
					});
				},
				failure: function(ex) {
					e.result({
						"successTag": false,
						"msg": ex.toString().replace("Error:", "")
					});
				}
			});

		}
	}, //方法与方法之间要添加逗号

 

 
//验证验证码
	code: {
		attribute: {

		},
		method: function(e) { //判断验证码是否正确
			var _ = this.apis;
			console.info(e.params.StuPhone);
			console.info(e.params.ValidateCode);
			var sql = "select iid from user_check where telphone=:telphone and status=1 and checkinfo=:checkinfo and :now<=timeout and :now>=createtime;";
			//var sql = "select count(*) as a from user_check where telphone=:telphone and status=1 and checkinfo=:checkinfo"
			_.sqlls.query(sql, {
				telphone: e.params.StuPhone,
				now: Date.now() - 946684800000,
				checkinfo: e.params.ValidateCode
			}).success(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值