700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 瑞吉外卖QQ邮箱登录

瑞吉外卖QQ邮箱登录

时间:2022-05-19 16:40:56

相关推荐

瑞吉外卖QQ邮箱登录

一、导入依赖

<!--mail短信依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

二、编写resources下的yml配置文件

spring:mail:host: # 你的QQ邮箱,这里为发件人,填自己的即可username: *********@# 你的QQ邮箱授权码password: ************

三、获取QQ邮箱授权码

1、打开QQ邮箱网页版点击设置

2、打开设置后点击账户

3、在账户页下拉找到POP3/SMTP服务开启获得授权码

4、要是忘记保存授权码点击这个也可以获得

5、把授权码编写到resources下的yml里即可

spring:mail:host: # 你的QQ邮箱,这里为发件人,填自己的即可username: *********@# 你的QQ邮箱授权码password: gcwo*******

四、编写业务

1、编写Service层的UserService

public interface UserService extends IService<User> {//发送邮件void sendMsg(String to,String subject,String text);}

2、编写Service里Impl层的UserServiceImpl

@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {//把yml配置的邮箱号赋值到from@Value("${spring.mail.username}")private String from;//发送邮件需要的对象@Autowiredprivate JavaMailSender javaMailSender;//邮件发送人@Overridepublic void sendMsg(String to, String subject, String text) {//发送简单邮件,简单邮件不包括附件等别的SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from);message.setTo(to);message.setSubject(subject);message.setText(text);//发送邮件javaMailSender.send(message);}}

五、在拦截器放行验证码请求和登录请求

六、编写UserController层

@RestController@RequestMapping("/user")@Slf4jpublic class UserController {@Autowiredprivate UserService userService;//获取验证码@PostMapping("/sendMsg")public R<String> sendMsg(HttpSession session, @RequestBody User user){//获取邮箱号//相当于发送短信定义的String toString email = user.getPhone();String subject = "瑞吉外卖";//StringUtils.isNotEmpty字符串非空判断if (StringUtils.isNotEmpty(email)) {//发送一个四位数的验证码,把验证码变成String类型String code = ValidateCodeUtils.generateValidateCode(4).toString();String text = "【瑞吉外卖】您好,您的登录验证码为:" + code + ",请尽快登录";log.info("验证码为:" + code);//发送短信userService.sendMsg(email,subject,text);//将验证码保存到session当中session.setAttribute(email,code);return R.success("验证码发送成功");}return R.error("验证码发送异常,请重新发送");}//登录@PostMapping("/login")//Map存JSON数据public R<User> login(HttpSession session,@RequestBody Map map){//获取邮箱,用户输入的String phone = map.get("phone").toString();//获取验证码,用户输入的String code = map.get("code").toString();//获取session中保存的验证码Object sessionCode = session.getAttribute(phone);//如果session的验证码和用户输入的验证码进行比对,&&同时if (sessionCode != null && sessionCode.equals(code)) {//要是User数据库没有这个邮箱则自动注册,先看看输入的邮箱是否存在数据库LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(User::getPhone,phone);//获得唯一的用户,因为手机号是唯一的User user = userService.getOne(queryWrapper);//要是User数据库没有这个邮箱则自动注册if (user == null) {user = new User();user.setPhone(phone);user.setStatus(1);//取邮箱的前五位为用户名user.setName(phone.substring(0,6));userService.save(user);}//不保存这个用户名就登不上去,因为过滤器需要得到这个user才能放行,程序才知道你登录了session.setAttribute("user", user.getId());return R.success(user);}return R.error("登录失败");}}

七、编写移动端页面

下载移动端front替换在你的项目即可:

链接:/s/13R89uAiAdpoIWgugkzfKlw

提取码:1234

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。