我们在这里输入账号、密码、邮箱后,后端的service层会判断账号、邮箱是否已被注册。如果没有,则会向邮箱中发送激活链接
在我们点击注册按钮之后,在service层中存入数据库,然后通过数据库中用户的id,来生成激活链接(http://localhost:8080/activation/151/da46a96eaf1a41ec8168fca35a3aa17d)。
系统将该链接发送到对应的邮箱中:通过**String content = templateEngine.process(“/mail/activation”, context);**将携带邮箱地址和链接的context与前端文字整合后,一同发送。
public void sendMail(String to, String subject, String content){
try{
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content,true);
mailSender.send(helper.getMimeMessage());
} catch (MessagingException e) {
e.printStackTrace();
LOGGER.error("发送邮件失败:"+e.getMessage());
}
}
发送成功后,我们在用户界面显示去激活界面:
查看邮箱里面的邮件:
点击链接后,系统判断链接中的userid和uuid是否和数据库中的一致,若一致,则修改用户的status,激活成功。
// 邮件激活账号
public int activation(int userId, String code) {
User user = userMapper.selectById(userId);
if (user.getStatus() == 1) {
return ACTIVATION_REPEAT;
} else if (user.getActivationCode().equals(code)) {
userMapper.updateStatus(userId, 1);
//clearCache(userId);
return ACTIVATION_SUCCESS;
} else {
return ACTIVATION_FAILED;
}
}