简介:实现用户的登录功能。
1.登录接口
用户通过http://localhost:8080/login/to_login来访问登录端口,
使用一个Controller为上面的url返回一个前端页面
@RequestMapping("/to_login") public String toLogin(){ return "login"; }
2.前端页面使用thymeleaf技术,下面为引入的依赖和添加的配置。
<!--引入支持thymeleaf技术的依赖-->
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
上面这些都是自动配置依赖模块,全都不需要手动配置。下面是一些自动配置的参数,如需更改,可在application.prioperties文件中添加相同的参数进行覆盖。
各种自动配置参数:https://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/htmlsingle/#appendix
spring-boot-starter-parent:提供了很多默认的配置为开发提供很多的方便。
spring-boot-starter-web:该模块为我们提供了一个包含嵌入式的Tomcat的web应用,我们只需完成一个Controller来处理web请求就可以了。
该模块的自动配置:
/src/main/resources/static:指定了静态文件的存放位置。
/src/main/resource/templates:指定了模板文件的存放位置。
自动配置SpringMVC必要组件,自动配置tomcat的各种参数。
3.在前端页面获取用户输入的登录信息,并使用异步提交。
1 <script> 2 3 function login() { 4 $("#loginForm").validate({ 5 submitHandler: function (form) { //点击提交button会触发该函数。 6 doLogin(); 7 } 8 }); 9 } 10 11 12 13 function doLogin() { 14 var inputPass = $("#password").val(); 15 var salt = salt1; 16 var pass = ""+salt.charAt(0)+salt.charAt(4)+inputPass+salt.charAt(2)+salt.charAt(6); //13 24 17 var password = md5(pass); //将用户提交的明文密码做一次MD5运算。 18 19 20 $.ajax({ 21 url: "/login/do_login", 22 type: "POST", 23 data: { 24 mobile: $("#mobile").val(), 25 password: password 26 }, 27 success: function (data) { 28 layer.closeAll(); 29 if (data.code == 0) { 30 layer.msg("成功"); 31 window.location.href = "/goods/to_list"; //访问url(/goods/to_list) 32 } else { 33 layer.msg(data.msg); 34 } 35 }, 36 error: function () { 37 layer.closeAll(); 38 } 39 }); 40 41 42 43 } 44 </script>
1.通过jQuery实现异步提交的功能。submitHandler:function(form){ doLogin() },点击登录按钮会触发doLogin()函数。
2.在doLogin()函数中,对用户输入的password做一次MD5的操作 。var password = md5(pass); 在文件中引入了md5.min.js(网上下载)所以可以调用md5方法。
3.使用$.ajax({url:,type:,data:,success:,error:}),向后端提交数据,在提交成功后访问/goods/to_list。
4.后端对数据进行验证
后端使用类LoginVo.class来接收前端传来的数据:
1.格式验证:手机号,密码的输入不能为空,手机号码格式为:1+10个正整数。
2.通过手机号在redis或MySQL中获取用户对象。 //可能抛出用户不存在的异常
3.比较密码是否正确:再一次对用户提交的密码进行MD5,然后与查询出的用户对象进行比较。 //可能抛出密码错误异常
4.为用户生成token,并将token保存在redis,Cookie中。