用户注册
驱动器RegisterProcessor完整代码
var tableName = 'demo-user';
function run() {
var username = _webParams.getParamValues().get("username");
var password = _webParams.getParamValues().get("password");
var mobilephone = _webParams.getParamValues().get("mobilephone");
var email = _webParams.getParamValues().get("email");
var checkCode = _webParams.getParamValues().get("checkCode");
if(username == null || username == "") {
return _webTools.getJsonMessage(false, null, null, null, "用户名不能为空...");
}
if(findUserByName(username) != null) {
return _webTools.getJsonMessage(false, null, null, null, "用户名[" + username + "]已存在");
}
if(password == null || password == "") {
return _webTools.getJsonMessage(false, null, null, null, "密码不能为空...");
}
if(mobilephone != null && mobilephone != "") {
if(findUserByPhone(mobilephone) != null) {
return _webTools.getJsonMessage(false, null, null, null, "手机号[" + mobilephone + "]已存在");
}
} else {
mobilephone = "";
}
if(email == null || email == "") {
return _webTools.getJsonMessage(false, null, null, null, "邮箱不能为空");
} else if(findUserByEmail(email) != null) {
return _webTools.getJsonMessage(false, null, null, null, "邮箱[" + email + "]已存在");
}
if(checkCode == "" || checkCode == null) {
return _webTools.getJsonMessage(false, null, null, null, "验证码不能为空:" + checkCode);
}
var checkCaptchaCode = _webTools.validateCaptcha(_webParams, checkCode);
if(checkCaptchaCode == false) {
return _webTools.getJsonMessage(false, null, null, null, "验证码不正确:" + checkCode);
}
password = _security.encryptSHA(username + _security.encryptSimpleMD5(password));
var vols = ["Username", "Password", "Email", "MobilePhone", "status", "registTime"];
var vals = [username, password, email, mobilephone, "ENABLE", new Date().getTime().toString()];
_db.updateData("cms", tableName, username, vols, vals);
try {
sendActiveUserEmail(username, email);
return _webTools.getJsonMessage(true, null, null, null, "恭喜您注册成功,请进入您的邮箱激活该帐户。");
return _webTools.getJsonMessage(true, null, null, null, "注册成功!");
} catch(e) {
return _webTools.getJsonMessage(false, null, null, null, e.toString());
}
}
//根据username查询数据库
functionfindUserByName(username) {
var data = null;
try {
data = _db.findData("cms", tableName, username);
} catch(e) {
var wrongMess = e.toString();
if(wrongMess.indexOf("cannot found id") < 0) {
throw e;
}
}
return data;
}
//根据email查询数据库
functionfindUserByEmail(email) {
var data = null;
try {
data = findUserByColVal("Email", email); //数据库,表名,列名,列值,从-1到1的记录
} catch(e) {
var wrongMess = e.toString();
if(wrongMess.indexOf("cannot found id") < 0) {
throw e;
}
}
return data;
}
//根据mobilephone查询数据库
functionfindUserByPhone(mobilephone) {
var data = null;
try {
data = findUserByColVal("MobilePhone", mobilephone); //数据库,表名,列名,列值,从-1到1的记录
} catch(e) {
var wrongMess = e.toString();
if(wrongMess.indexOf("cannot found id") < 0) {
throw e;
}
}
return data;
}
//根据列名:列值查找数据库
functionfindUserByColVal(col, val) {
var data = _db.findData("cms", tableName, [col], [val], -1, 1);
if(data.size() == 0) {
return null;
} else {
return data.get(0);
}
}
//发送验证链接
functionsendActiveUserEmail(userName, email) {
var currentTime = getDateTime(new Date());
var invalidDate = getInvalidDate(1);
var showInvalidTime = getDateTime(invalidDate);
var invaliDateTime = invalidDate.getTime() + "";
var verificateCode = _security.encryptSHA(_webTools.randomAlphanumeric(8));
var resetPassword = _webTools.randomAlphanumeric(6);
var cols = ["userName", "verificateCode", "createTime", "invalidTime", "validStatus", "type"];
var vals = [userName, verificateCode, currentTime, invaliDateTime, true, "NEWUSERACTIVE"];
_db.updateData('cms', 'EmailVerificatRecord', cols, vals);
var siteDomain = "jdf.unitedbiz.net";
try {
siteDomain = _db.findData("cms", "SystemConfig", "domain").get("value");
} catch(e) {}
varreturnClickUrl = "http://" + siteDomain + "/activeUserService?username=" + userName + "&verificateCode=" + verificateCode;
var subject = "[cloud]激活您的帐户";
var htmlMessage = '亲爱的用户 ' + userName + ':您好!感谢您注册了我们的网站,请您在使用帐户前点击下方链接验证。我们将一如既往、热忱的为您服务!';
var textMessage = "激活帐户";
sendEmail(email, subject, htmlMessage, textMessage);
}
run();
模板页面Register.vm完整代码
$_service.get("demoHeader")
<div id="main">
<div>
<div id="breadcrumb">您的位置:
<a href="/">首页</a><span>></span>注册</div>
<div id="reg">
<div>
<form action="registerService" id="register-form" method="post">
<div>请使用常用邮箱注册cms账号!</div>
<div>
<input id="username" name="username" type="text" placeholder="用户名" />
</div>
<div>
<input id="password" name="password" type="password" placeholder="登录密码" />
</div>
<div>
<input id="confirmPassword" name="confirmPassword" type="password" placeholder="确认登录密码" />
</div>
<div>
<input id="mobilephone" name="mobilephone" type="text" placeholder="手机号" />
</div>
<div>
<input id="email" name="email" type="text" placeholder="注册邮箱" onblur="checkUser('Email',this)" />
</div>
<div>
<input id="checkCode" name="checkCode" type="text" placeholder="输入验证码" />
</div>
<a href='javascript:changeCaptcha();' onmouseover="this.style.cursor='hand'" onmouseout="this.style.cursor='default'">
<img id="randomImg" src="captcha.jpg" height="45" width="130" alt="" style="vertical-align:middle;" />
</a>
<a href="javascript:changeCaptcha();">看不清?换一张</a>
<div>
<a href="javascript:void(0)" onclick="regSubmit()" class="btn200x50 btn-orange">注册</a>
</div>
</form>
</div>
</div>
</div>
</div>
$_service.get("demoFooter")
<script src="cmsAdminStatic/js/jquery.form.js"></script>
<script type="text/javascript">
function regSubmit() {
$('#register-form').ajaxSubmit(function(data) {
if(data.success == true) {
alert(data.message);
window.location.href = "login";
} else {
alert(data.message);
}
});
}
/*Ajax邮箱验证*/
function checkEmail(colName, obj) {
var inputObj = $(obj);
var colVal = inputObj.val();
if(colVal == "") { //如果值为为空暂不校验
return false;
}
$.post(getUUIDURL("registerValidate"), {
colName: colName,
colValue: colVal
}, function(data) {
if(data.success == true) {
var id = inputObj.attr("id");
if(id == "email") {
alert("邮箱[" + colVal + "]已存在.");
}
inputObj.focus();
} else {
if(data.exception != "") { //如果存在异常,提示异常信息
alert(data.exception);
}
}
}, "json");
}
//更换校验码
functionchangeCaptcha() {
$('#randomImg').attr('src', 'checkcode.jpg?img=' + Math.random());
}
</script>