服务端:
基本框架
//方法名称:
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(