1.用户表字段:
用户ID | 用户密码 | 用户名 | salt | 头像 | 注册时间 | 上次登陆时间 | 登陆次数 |
---|---|---|---|---|---|---|---|
id | password | nickname | salt | head | register_date | last_login_date | login_count |
2.两次MD5
1.用户端:PASS = MD5(明文+固定Salt) //防止明文传输被抓包
2.服务端:PASS= MD5(用户输入+随机Salt) //防止数据库被盗
3.实现用户登陆功能
1)客户端程序编写MD5工具类实现对输入密码传输过程中进行加密和存储过程中加密
2)前端页面通过BootStrp {static js/css }构建页面布局。点击登陆时候可以通过脚本实现对输入密码进行一次MD5 加密
4)Service 层进行login 功能,对传入的对象进行用户账号验证(用到编写的validator类判断是否是个合理的用户名,用户密码与数据库中用户密码的比对(用户密码这里指的是对用户输入的密码做两次MD5后),判断是否需要抛出异常(自定义异常类,包含CodeMsg 对象,并且实现异常处理器,抛出不同类型异常)
5)在Controller层,调用service层login服务,返回true.(如果有问题 提前抛出异