我们在这里输入账号、密码、邮箱后,后端的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;
}
}
本文详细介绍了用户注册过程,包括输入账号、密码和邮箱后,服务层验证信息未被注册。接着,系统生成激活链接并存储在数据库中,然后通过模板引擎将激活链接与定制化的邮件内容结合,发送到用户邮箱。用户点击邮件中的链接,系统会校验链接的有效性,如果匹配成功则激活用户账号。整个流程涵盖了数据库操作、邮件发送和链接验证等关键步骤。

1823

被折叠的 条评论
为什么被折叠?



