onlineSchool 项目课 七:实现用户的登录功能

一,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,登录:加密算法盐加密前端提交的密码数据。得到的密文与数据库的密文对比,返回校验成功或失败的信息。


                
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值