当前位置: 首页 > news >正文

怎么设置网站权限海南省建设与执业资格注册中心网站

怎么设置网站权限,海南省建设与执业资格注册中心网站,网站定制开发,手机网游大型游戏排行榜0.前情提要 之前的po已经说了单独的邮箱验证码发送功能怎么实现: https://blog.csdn.net/qq_61551948/article/details/142641495 这篇说下如何把该功能整合到瑞吉项目里面,也就是把原先项目里的短信发送验证码的功能改掉,改为邮箱发送验证…

0.前情提要

之前的po已经说了单独的邮箱验证码发送功能怎么实现:
https://blog.csdn.net/qq_61551948/article/details/142641495

这篇说下如何把该功能整合到瑞吉项目里面,也就是把原先项目里的短信发送验证码的功能改掉,改为邮箱发送验证码的功能。

当然首先得跟着教程从头到尾做到这块功能时才行,并且已经将数据模型User导入了进来,添加了UserController、UserService和UserServiceImpl,添加了Filter中一部分代码。

基于以上,实现本文的操作。 (当然不做这个项目参考一下也odkkkk)

1.后端代码实现

【和教程中所有代码都放在controller层不一样(看着很臃肿),我是具体实现细节就放在impl实现类里了】

1.1发送邮箱验证码的整体功能

controller层

/*** 发送邮箱验证码模拟短信验证码* @param user* @return*/
@PostMapping("sendEmail")
public R<String> sendEmail(@RequestBody User user) {return userService.sendEmail(user);
}

service层

R<String> sendEmail(User user);

serviceImpl层

@Resource
private JavaMailSender javaMailSender;
//读取yml文件中username的值并赋值给from
@Value("${spring.mail.username}")
private String from;
// 用于存储验证码,键为邮箱,值为验证码 【也可以用session保存试试】
private Map<String, String> verificationCodeMap = new HashMap<>();@Override
public R<String> sendEmail(User user) {if(user.getPhone() != null){// 构建一个邮件对象SimpleMailMessage message = new SimpleMailMessage();// 设置邮件发送者message.setFrom(from);// 设置邮件接收者message.setTo(user.getPhone());// 设置邮件的主题message.setSubject("登录验证码");// 设置邮件的正文Random random = new Random();StringBuilder code = new StringBuilder();for (int i = 0; i < 6; i++) {int r = random.nextInt(10);code.append(r);}String text = "您的验证码为:" + code;// 存储验证码log.info("验证码:{}",text);verificationCodeMap.put(user.getPhone(), code.toString());// 设置邮件的正文message.setText(text);// 发送邮件try {javaMailSender.send(message);return R.success("发送成功!");} catch (MailException e) {e.printStackTrace();}return R.error("发送失败");}return R.error("邮箱为空!");
}

1.2接收并校验验证码整体功能

controller层

/*** 登录功能* @param user* @return*/
@PostMapping("login")
public R<String> verifyCode(@RequestBody Map user, HttpSession session) {return userService.login(user,session);
}

service层

R<String> login(Map user, HttpSession session);

serviceImpl层

//判断验证码是否正确+判断是否注册过,没注册需要在登录时自动注册
@Override
public R<String> login(Map user, HttpSession session) { //Map存的值是Object类型,需要toString一下// 获取已存储的验证码String storedCode = verificationCodeMap.get(user.get("phone").toString());// 检查验证码是否存在&&检查用户输入的验证码是否正确if (storedCode != null && storedCode.equals(user.get("code").toString())) {//验证成功//判断该用户是否存在,如果不存在的话,顺便注册LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(User::getPhone,user.get("phone").toString());User user1 = this.getOne(queryWrapper);if(user1 == null){ //用户不存在,需要注册user1 = new User();user1.setPhone(user.get("phone").toString());user1.setStatus(1);this.save(user1);}session.setAttribute("user",user1.getId()); //在session中存入user的id(让过滤器放行)// 清除验证码以防止重复使用verificationCodeMap.remove(user.get("phone"));return R.success("验证成功");} else {return R.error("验证失败,验证码不正确");}
}

2.部分前端代码修改

打开下图所示的login.html文件
在这里插入图片描述

60行左右,原先用来判断手机号的正则表达式改为判断qq邮箱的正则表达式
在这里插入图片描述

const regex = /^[1-9][0-9]{4,10}@qq\.com$/;

再打开下图所示的文件
在这里插入图片描述

修改原文件的发送邮箱验证码的接口url以及登录的接口url,改为自己刚才实现的方法的接口url。
在这里插入图片描述

3.结果展示

发送验证码
在这里插入图片描述

收到验证码
在这里插入图片描述
输入错误验证码
在这里插入图片描述

输入正确验证码之后进入页面
在这里插入图片描述

撒花!!!!

http://www.yayakq.cn/news/641270/

相关文章:

  • 设计作品网站网站运营情况怎么写
  • 高新区建网站外包网站开发工程师的生活形态
  • 财政局网站建设方案做效果图的网站
  • 招聘网站开发计划哪些网站可以做易拉宝
  • 珠海网站快速排名提升天门网页设计
  • 网站验收确认wordpress 媒体库 文件夹
  • 第3章营销型企业网站建设中国建设银行移动门户网站
  • 建设网站需要了解些什么问题网站建设与网页设计pdf
  • 中国十大摄影网站排名个人备案网站服务内容
  • 网站seo策划泉州网站制作推广
  • 紫搜做网站仿网站制作教学视频
  • 有没得办法可以查询一个网站有没得做竞价呀wordpress 定时机制
  • 有什么网站是做兼职的办公室装修注意事项及细节
  • 湖州网站推广做网站的几个步骤
  • 网站建设好的wordpress插件获取数据库
  • 工程资料代做网站wordpress 强大主题
  • 杭州做网站好的公司手机行情网报价实时查询
  • 崇左市城市投资建设有限公司网站做的比较唯美的网站有哪些
  • 网站开发内部工单做搜狗手机网站长尾
  • 苏州做网站的专业公司哪家好攻击网站的方法
  • 建设的招标网站跨境电商如何开店运营
  • 网站建设是广告么赤峰专业网站建设
  • 金昌市建设局官方网站微网站的建设第一步是什么
  • 网站评论设计网站建设方案书 个人网站
  • 来宾城乡建设局网站网页设计优秀案例分析
  • 邯郸城乡建设部网站首页北京做网站公司
  • 网页设计学校网站淘宝客的优惠卷网站怎么做的
  • 微信咋做自己的网站wordpress 纯代码
  • 网站开发凭证做什么科目为什么都说2024年房价降
  • 西安网站建设怎么接单ui设计界面配色