一,Java代码实现用户的登录注册功能。
前台:
1,点击一个a标签,请求到countroller,返回一个页面,实现返回的页面结构。
2, form表单输入用户登录或注册的用户名密码。
展示验证码,点击验证码变换的效果。
//展示验证码
<img onclick="reloadIdCode()" id="identityCodeImg" src="${base}/idcode/register">
//点击验证码变换的效果
function reloadIdCode() {
let time = new Date().getTime()
$('#identityCodeImg').attr('src','${base}/idcode/register?time='+time)
}
3,对密码进行64位的哈希编码,并设置到输入框。
(注册还需要比对密码一致,不一致数据回滚。)
4,ajaxSubmit提交form表单,校验成功,页面跳转,校验失败,返回Java中定义的失败提示,重置输入框。
//提交登录的form表单
function doLogin() {
let username = $('#username').val()
let password = $('#password').val()
password = sha256.hmac(username,password)
$('#password').val(password)
$('#loginForm').ajaxSubmit({
dataType:'json',
success:function (resp) {
if (resp.errcode == 0){
_os.alertMsg("登录成功")
window.location.href="${base}/"
}else {
_os.alertMsg(resp.message)
$('#password').val()
$('#identityCode').val()
}
}
})
}
后端:
1,对提交的用户名密码作判断,没有接收到为空返回失败的信息。
2,对验证码进行校验。
Object sessionCode = request.getSession().getAttribute(IdentifyCodeKey.LOGIN);
if (sessionCode == null){
return JsonView.failureJson("验证码不存在");
}
if (!identityCode.equalsIgnoreCase(sessionCode.toString())){
return JsonView.failureJson("验证码错误");
}
3,获取当前登录的用户,对用户名进行校验,getByUserName。
登录时用户名要相同(通过传过来的用户名能获取到数据库中的用户),注册时用户名不可重复。否则就返回失败的提示。
//登录的用户校验用户名
AuthUser authUser = authUserService.getByUsername(username);
if(null == authUser){
return JsonView.failureJson("当前登录的用户不存在");
}
//注册的用户校验用户名
AuthUser authUser = authUserService.getByUsername(username);
if(null != authUser){
return JsonView.failureJson("用户名已经存在了");
}
4,登录:加密算法盐加密前端提交的密码数据。得到的密文与数据库的密文对比,返回校验成功或失败的信息。