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

连云港网站优化方案隆昌市住房和城乡建设厅网站

连云港网站优化方案,隆昌市住房和城乡建设厅网站,免费网课平台,智慧团建网站几点关闭文章目录 依赖配置开启 QQ 邮箱 SMTP 服务配置文件代码实现验证码服务邮件服务接口实现执行流程 依赖配置 dependencies !-- Spring Boot Starter Web -- dependency groupIdorg.springframework.boot/groupId artifactIdspr… 文章目录 依赖配置开启 QQ 邮箱 SMTP 服务配置文件代码实现验证码服务邮件服务接口实现执行流程 依赖配置 dependencies !-- Spring Boot Starter Web -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- Redis 集成依赖 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-redis/artifactId version3.4.2/version /dependency dependency groupIdorg.apache.commons/groupId artifactIdcommons-pool2/artifactId version2.11.1/version /dependency dependency groupIdio.lettuce/groupId artifactIdlettuce-core/artifactId version6.3.2.RELEASE/version /dependency!-- 邮件发送支持 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-mail/artifactId /dependency !-- 验证码生成工具 -- dependency groupIdcommons-lang/groupId artifactIdcommons-lang/artifactId version2.6/version /dependency /dependencies开启 QQ 邮箱 SMTP 服务 打开浏览器登录到 QQ 邮箱。点击左上角的齿轮按钮进入设置页面见下图 4. 在设置中找到“第三方服务”激活 IMAP/SMTP默认为禁用并生成独立的 SMTP 授权码。 配置文件 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_accountqq.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_accountqq.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 令牌 MapString, 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(); } }执行流程 用户输入邮箱调用 /send-code 接口获取验证码。用户填写验证码并调用 /register 接口进行注册。系统校验验证码验证成功则注册失败则返回错误信息。
http://www.w-s-a.com/news/704639/

相关文章:

  • 哪个网站做视频赚钱万科
  • 莆系医疗网站建设wp如何做网站地图
  • 网站建设应急处置方案团购网站 备案问题
  • 网站建设 岗位职责浙江中天建设集团有限公司网站
  • 西海岸建设局网站用wordpress建站学什么
  • 网站静态和动态学校网站建设流程步骤
  • 做群头像的网站在线怎么做俄语网站
  • 西安网站定制开发国内cms推荐
  • windows网站建设教程视频教程wordpress默认用户头像
  • 做网站需要什么软件wordpress会员邮件通知
  • 技术支持网站合肥网站搭建
  • 无为网站设计免费制作企业网站平台
  • 社交网站第一步怎么做房屋装修效果图用什么软件
  • 企业网站 批量备案合肥 网站建设
  • 如何提高网站索引量室内设计师之路网站
  • ps怎么做响应式网站布局图现在做网站都是怎么做的
  • 导购 网站模板网站主题选择
  • 毕业设计医院网站设计怎么做郑州铭功路网站建设
  • 网站根域名是什么php做商城网站步骤
  • 建设网站的那个公司好网站建设万首先金手指12
  • 广东民航机场建设有限公司网站网站开发后端用什么
  • 做风帆网站需要多少钱越野车网站模板
  • 如何做网站平台销售用狗做头像的网站
  • 宝安电子厂做网站美食网页设计的制作过程
  • 网站logo提交学网站开发技术
  • 跨境电商平台网站建设广州西安官网seo推广
  • 我和你99谁做的网站小程序制作第三方平台
  • 建设银行网站用户名鹤岗网站seo
  • 做一元夺宝网站需要什么条件西安市做网站的公司
  • 零基础建设网站教程郑州做网站推广价格