找回密码的困扰
自己做了一个博客网站,有登录注册功能,但是没有找回密码功能,思考了许久,发现可以通过第三方来实现,第一想到的就是通过短信验证码,但是资金问题,一条0.1元,属是有点贵(多了就贵了),然后想到了用微信扫码,但是微信也收费,无奈之下用邮箱吧,感觉邮箱还不错,只需要开启STMP协议就行了,开启之后,会有一个密码,那个密码保存好,后面会用到。

开始创建
首先创建一个springboot项目,然后引入mail依赖,简单配置即可。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置yaml,密码为自己生成的

准备工作做好之后,下面来写一下获取验证码的方法,把获取到的验证码存到session中方便后续判断。

public String getCode(String email, HttpSession session) {int code = (int) (Math.random() * 1000000);String codeString = String.valueOf(code);if (codeString.length() != 6) {code = code + 100000;}SimpleMailMessage message = new SimpleMailMessage();// 设置邮箱标题message.setSubject("验证码");// 设置邮箱内容message.setText("您好!\n验证码为:"+ code);// 发送者邮箱message.setFrom(username);message.setTo(email);mailSender.send(message);session.setAttribute("email", email);session.setAttribute("code", code + "");return "success";}

获取到验证码之后,可以进行注册了

    public BaseResult register(String email, String password, String code, HttpSession session) {User user = new User();String myEmail = (String) session.getAttribute("email");String myCode = (String) session.getAttribute("code");if (!email.equals(myEmail) || !code.equals(myCode)) {return BaseResult.error();}user.setUsername(UUID.randomUUID().toString());user.setEmail(email);user.setPassword(password);user.setSalt("abc");user.setHeadUrl("url");userMapper.addUser(user);return BaseResult.ok();}

注册完之后,就可以进行登录了。

    public BaseResult Login(String email, String password) {User user = userMapper.selectUserByEmail(email);if (user.getPassword().equals(password)) {return BaseResult.ok();}return BaseResult.error();}

手写邮箱获取验证码注册登录功能相关推荐

  1. 手写一个获取验证码的接口,超级简单

    手写一个获取验证码的接口,超级简单,觉得有用就试试吧,话不多说代码附上 private static final int VERIFY_CODE_HEIGHT = 25; //验证码高度private ...

  2. JavaWeb实现注册登录功能并将用户数据写进数据库(商城系统第一部分)

    JavaWeb实现注册登录功能并将用户数据写进数据库(商城系统第一部分) 声明:本人并非项目原创,该商城系统原创来自撩课高新强老师:https://study.163.com/course/intro ...

  3. 手机短信验证码一键注册登录功能开发 2

    1. 上一篇我们开发好了 短信验证码的发送功能, 接下来开发 我们的 一键登录注册功能 2. 有前端的视图我们可以看到, 传入的参数为手机号和验证码,我们用BO对其进行统一的封装,同时使用valid ...

  4. 一步步开发自己的博客 .NET版(3、注册登录功能)

    前言 这次开发的博客主要功能或特点:     第一:可以兼容各终端,特别是手机端.     第二:到时会用到大量html5,炫啊.     第三:导入博客园的精华文章,并做分类.(不要封我)     ...

  5. 01: 实现注册登录功能

    目录:抽屉项目之js最佳实践 01: 实现注册登录功能 02: 实现发布帖子功能 03: 将帖子展示到页面.点赞 04: 层级评论 目录: 1.1 显示.隐藏 "登录/注册" 菜单 ...

  6. SpringBoot集成腾讯云短信实现注册/登录功能

    前言 笔记参考 Duktig丶 JavaSDK地址:短信 Java SDK - SDK 文档 - 文档中心 - 腾讯云 1.导入依赖 <dependency><groupId> ...

  7. 8、ABPZero系列教程之拼多多卖家工具 添加手机注册登录功能

    现在网站基本都用手机注册,很少用邮箱注册,本篇内容比较多,代码我会尽量加备注,有些操作需要连续添加几个文件才不报错,如果VS显示错误,请继续后续步骤. 前面已经有一篇文章讲到集成短信发送模块:http ...

  8. 06-发送短信验证码实现登录功能

    1.发送短信验证码实现登录功能的流程 1.1.获取验证码流程 1.2.登录流程 1.3.页面带有图形验证码的流程 2. 注册登录二合一页面的开发 2.1.将src目录下的App.vue页面上通用显示的 ...

  9. java基础5:工厂模式、单例模式、File文件类、递归、IO流、Properties配置文件、网络编程、利用IO流模拟注册登录功能、关于反射、JDK动态代理

    1.工厂模式 23种java设计模式之一 1)提供抽象类(基类) 2)提供一些子类,完成方法重写 3)提供一个接口:完成具体子类的实例化对象的创建,不能直接new子类,构造函数私有化. 优点:具体的子 ...

最新文章

  1. 洛谷 P1028 数的计算
  2. 下载数据CityEngine示例数据(Tutorial)配套视频教程(英文)
  3. AcWing 164. 可达性统计
  4. Mybatis报错ClassNotfind
  5. 内存管理之slab分配器
  6. php充值卡,ecshop 充值卡功能_懒人程序
  7. python单元测试unittest
  8. visual studio哪一款比较好用_时下比较流行的7种家居装修风格,你钟爱哪一款?...
  9. C++ 泛型模板进阶
  10. python编写makefile_Python项目中的Makefiles
  11. java实现 mysql导入_怎么用java实现mysql数据库的导入导出
  12. 对初学者来说,Python难度不低于其他语言
  13. Atitit SpringCache缓存使用 艾提拉 attilax总结 1. Spring的抽象已经做得够好了,适合于大多数场景,非常复杂的就需要自己AOP实现了。 1 1.1. 设置配置文件支持
  14. OSPF基础知识及配置命令
  15. Python3爬虫中Selenium的用法详解
  16. VS2015调试无法加载PDB 文件
  17. java jit 原理_java的JIT 工作原理简单介绍
  18. 内存泄漏、虚拟内存、物理内存的联系
  19. 基于微信小程序的教学评价平台开发
  20. 施耐德PLC初始IP地址计算

热门文章

  1. list转数组array[]
  2. Jenkins插件之有用
  3. C语言__LINE__实现原理
  4. centos7配置静态ip地址
  5. js几种数组排序及sort的实现
  6. Python 之 sorted()排序详解 适用于任意可迭代对象比如列表,字典等
  7. SQL Server 服务器硬件配置
  8. SIP中第三方呼叫控制(3PCC)建立流程
  9. 关于SWT中的表格(TableViewer类)
  10. Mysql权限控制-允许用户远程链接