注册模块: 用户进入首页之后,点击注册按钮,就跳转到了注册页面。注册主要包括,用户名,密码,以及邮箱。
发送邮件: 1.邮箱配置(启动客户端SMTP服务) 新浪邮箱
2.SpringEmail(导包,参数配置(谁发的、发送给谁、邮件内容等),使用 JavaMailSender发送邮件)
3.模板引擎(使用Thymeleaf发送HTML邮件)
开发注册功能:(三次请求)
第一次:访问注册页面 : 点击顶部区域内的链接,打开注册页面
第二次:填写数据,立即注册,注册之后发送邮箱连接。
第三次:点击连接,再次访问服务
写一个工具类CommunityUtil:随机字符串 ;MD5密码进行加密+盐
在Util中创建接口,设置激活的三种状态 (激活成功、激活失败、重复激活)
service: 编写注册的方法:
1.返回注册的情况,用Map封装,输入的账号密码进行非空判断,
2.验证邮箱、账号是否为空,如果不为空,说明存在。
3.都判断之后进行注册,将密码用 MD5加盐 进行加密处理,将加密后的密码存入数据库。
4.设置随机字符串激活码。设置用户头像和创建时间。将User插入数据库。
5.使用JavaMailSender发送激活邮件。将可能带有错误信息的Map返回。
controller:得到 Map 判断是否为空,为空则注册成功,发送邮件,同时跳转到第三方界面
map不为空,注册失败,返回map信息会显示原因,还是留在注册页面。
激活注册账号 :点击邮箱中的链接,访问服务端的激活服务
在LoginController(视图层),书写激活方法(根据邮箱中id和激活码的匹配,使得state置为1,即为激活成功):
(id和激活码匹配)激活成功 跳转页面
(id和激活码不匹配)激活失败 跳转页面
(state已经是1了)重复激活 跳转页面
生成验证码:
1.导入jar包:kaptcha
2.编写Kaptcha配置类KaptchaConfig(主要配置生成图片的长度,宽度,字体大小,字体颜色,字符范围)
3.在controller中 添加方法 getKaptcha:生成验证码图片,把验证码图片在session中保存,将图片输出给浏览器。
开发登录和退出功能:
1.访问登陆页面:点击顶部链接打开登陆页面
2.登录:验证账号密码和验证码是否正确 成功:生成登录凭证,发给客户端
失败:跳转回登录页面,返回错误信息
3.退出:将登陆凭证修改为失效状态,跳转至网站首页
一张登录表: 默认id 、用户的id、登录的凭证、 状态(1:为已经激活 、0:为失效) 、过期时间
dao: 方法一:写一个添加方法:插入登录凭证数据
方法二:查看获取凭证对象
方法三:更新登录凭证状态
service: 账号和密码的正确性检验(两者是否为空值,账号是否存在且已经激活,密码是否正确)
登录凭证:如果信息正确,生成登录凭证,并插入到数据库中,map的key为ticket,value为登录凭证信息。
controller:把表单的验证码和存入session的验证码进行匹配。
返回结果为map,从map中获取登录成功与否信息。
依靠上一步map的信息,然后再跳转到不同的界面。
1)如果登录成功了,把登录凭证存到浏览器的cookie中,并调回首页;
2)如果登录失败了,把错误原因返还,并调回到登录页面。
退出登录: dao: 把登录凭证改为1
service: 添加一个logout方法 就是把对应的登录凭证改为1 失效状态
controller: 把连接改为退出登录块的连接
显示登录信息: 流程: 浏览器端的cookie中存有登录凭证,能够在根据登录凭证在数据库中找