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

公司网站建设会计你分录深圳市官网网站建设报价

公司网站建设会计你分录,深圳市官网网站建设报价,北京房地产网站建设,开源代码文章目录 依赖配置开启 QQ 邮箱 SMTP 服务配置文件代码实现验证码服务邮件服务接口实现执行流程 依赖配置 <dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr…

文章目录

    • 依赖配置
    • 开启 QQ 邮箱 SMTP 服务
    • 配置文件
    • 代码实现
      • 验证码服务
      • 邮件服务
      • 接口实现
      • 执行流程

依赖配置

<dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Redis 集成依赖  -->  <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-data-redis</artifactId>  <version>3.4.2</version>  </dependency>  <dependency>  <groupId>org.apache.commons</groupId>  <artifactId>commons-pool2</artifactId>  <version>2.11.1</version>  </dependency>  <dependency>  <groupId>io.lettuce</groupId>  <artifactId>lettuce-core</artifactId>  <version>6.3.2.RELEASE</version>  </dependency><!-- 邮件发送支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <!-- 验证码生成工具 --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency>
</dependencies>

开启 QQ 邮箱 SMTP 服务

  1. 打开浏览器,登录到 QQ 邮箱。
  2. 点击左上角的齿轮按钮,进入设置页面,见下图:
    QQMailHeader4. 在设置中找到“第三方服务”,激活 IMAP/SMTP(默认为禁用),并生成独立的 SMTP 授权码。 MailBoxSetting

配置文件

spring:  data:  redis:  host: your_redis_hostport: your_redis_port # 通常为6379password: your_redis_passwordlettuce:  pool:  max-active: 8 # 最大连接数  max-idle: 8 # 最大空闲连接数  min-idle: 0 # 最小空闲连接数  max-wait: 100 # 连接等待时间  mail:  host: smtp.qq.com  port: 465  username: your_qq_account@qq.compassword: 111 # 输入 QQ 邮箱的授权码properties:  mail:  smtp:  ssl:  enable: true  # QQ 邮箱需要开启 SSLauth: true

代码实现

验证码服务

使用 Redis 缓存验证码并实现验证码的校验功能:

@Service  
public class CaptchaService {  @Autowired  private StringRedisTemplate redisTemplate;  /**  * 生成验证码  * @param email 目标邮箱  * @return 生成的验证码  */  public String generateCaptcha(String email) { // 生成验证码  String code = RandomStringUtils.randomNumeric(6);  redisTemplate.opsForValue().set(  "CAPTCHA:" + email,  code,  Duration.ofMinutes(5)  // 验证码有效期为5分钟  );  return code;  }  /**  * 验证码校验  * @param email 邮箱  * @param code 验证码  * @return 是否验证通过  */  public boolean validateCaptcha(String email, String code) {  String captcha = redisTemplate.opsForValue().get("CAPTCHA:" + email);  return captcha != null && captcha.equals(code);  }  
}

邮件服务

@Service  
public class EmailService {  @Autowired  private JavaMailSender mailSender;  /**  * 发送验证码邮件  * @param email 收件人邮箱  * @param authCode 验证码  */  public void sendCaptchaEmail(String email, String authCode) {  SimpleMailMessage message = new SimpleMailMessage();  message.setFrom("your_qq_account@qq.com");  message.setTo(email);  message.setSubject("验证码");  message.setText("您的验证码是:" + authCode + ",有效期为5分钟");  mailSender.send(message);  }
}

接口实现

@RestController  
public class AuthController {  @Autowired  private UserService userService;  @Autowired  private CaptchaService captchaService;  @Autowired  private EmailService emailService;  /**  * 注册接口  * @param userDTO 用户信息  * @param captcha 验证码  * @return 注册结果  */  @PostMapping("/register")  public Result register(@RequestBody UserDTO userDTO, @RequestParam String captcha) {  if (!captchaService.validateCaptcha(userDTO.getEmail(), captcha)) {  return Result.error("验证码错误");  }  userService.register(userDTO);  return Result.success();  }  /**  * 登录接口  * @param userDTO 用户信息  * @return 登录结果  */  @PostMapping("/login")  public Result login(@RequestBody UserDTO userDTO) {  User user = userService.login(userDTO);  if (user == null) {  return Result.error("用户不存在");  }  // 登录成功,生成 JWT 令牌  Map<String, Object> claims = new HashMap<>();  claims.put("userId", user.getId());  String token = JwtUtils.createJWT("secretKey", 60000, claims);  UserVO userVO = new UserVO();  BeanUtils.copyProperties(user, userVO);  LoginResponse loginResponse = new LoginResponse(userVO, token);  return Result.success(loginResponse);  }  /**  * 发送验证码接口  * @param email 邮箱地址  * @return 发送结果  */  @PostMapping("/send-code")  public Result sendCode(@RequestParam String email) throws MessagingException {  // 校验邮箱格式if (!RegexUtils.isEmailValid(email)) {  return Result.error("邮箱格式非法");  }  String code = captchaService.generateCaptcha(email);  emailService.sendCaptchaEmail(email, code);  return Result.success();  }  
}

执行流程

  1. 用户输入邮箱,调用 /send-code 接口获取验证码。
  2. 用户填写验证码并调用 /register 接口进行注册。
  3. 系统校验验证码,验证成功则注册,失败则返回错误信息。
http://www.dtcms.com/wzjs/566396.html

相关文章:

  • 找人做海报在什么网站找汕尾东莞网站建设
  • 怎么样增加网站权重wordpress实现付费阅读
  • 手机像素网站河北区网站建设
  • 嘉兴制作手机网站wordpress用于商业
  • 站内搜索本网站怎么做哪位大神推荐一下好网站
  • 网站建设的模块电子政务与网站建设 总结
  • 公司网站设计案例定制网站制作服务商
  • 做兼职网站赚钱吗杭州网站提升排名
  • 导视标识设计做搜狗网站优化首页软
  • seo推广必须要做的9种方法上海seo推广
  • 网站建设 质量标准沙井做网站公司
  • 网站建设制作收费仿新浪首页网站模板
  • 培训网站哪个最好的广州网站设计易企建站
  • gta5房子网站建设中前端编程工程师培训
  • vps如何做网站优化师和运营区别
  • 专业app怎么制作网站吗wordpress 本地调试
  • 货代找客户的网站黄山公司做网站
  • 哪做网站好网页游戏传奇盛世开服表
  • 课程网站开发网站建设与管理资料下载
  • 怎么做企业招聘网站城北区建设局网站
  • 建立网站的内容规划广告点击网站源码
  • 免费网站制作软件有哪些seo关键词排名系统
  • 网站运营软件网站开发怎么根据设计稿的尺寸算图片高度
  • 东莞网站设计图书馆网站建设研究
  • 手机网站设计公司皆选亿企邦php大型网站开发书籍
  • 亚马逊做code的网站长沙网站排名方法
  • 怎么创建网站卖东西sem专业培训公司
  • 关于做女装的网站晚上国网app
  • 新网站做百度推广无锡网站设计公司排名
  • 代理分佣后台网站开发企业开发