登录注册添加邮箱方式

This commit is contained in:
wuchunlei
2023-12-26 10:56:58 +08:00
parent f9d95718cd
commit 6c6887c629
2 changed files with 72 additions and 67 deletions

View File

@@ -12,34 +12,37 @@ public class MailUtil {
private final static String mailName = "fengzidushu@163.com"; private final static String mailName = "fengzidushu@163.com";
private final static String mailToken = "GJIPUCQLQYTMDMPH"; private final static String mailToken = "GJIPUCQLQYTMDMPH";
public static void sendMail(String title,String content,String receiveAddress) throws Exception{ public static R sendMail(String title,String content,String receiveAddress){
//smtp服务器 try {
Properties pros=new Properties(); //smtp服务器
pros.put("mail.smtp.host", "smtp.163.com");//主机名 Properties pros=new Properties();
pros.put("mail.smtp.port", "25");//主机端口号 pros.put("mail.smtp.host", "smtp.163.com");//主机
pros.put("mail.smtp.auth", "true");//是否需要用户认证 pros.put("mail.smtp.port", "25");//主机端口号
pros.put("mail.smtp.starttls.enable", "true");//启用TLS加密 pros.put("mail.smtp.auth", "true");//是否需要用户认证
//创建会话 pros.put("mail.smtp.starttls.enable", "true");//启用TLS加密
Session session=Session.getInstance(pros,new Authenticator(){ //创建会话
@Override Session session=Session.getInstance(pros,new Authenticator(){
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){ @Override
return new javax.mail.PasswordAuthentication(mailName, mailToken); protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
} return new javax.mail.PasswordAuthentication(mailName, mailToken);
}); }
// System.out.println(session); });
//设置debug模式便于调试 //设置debug模式便于调试
session.setDebug(true); session.setDebug(true);
MimeMessage message=new MimeMessage(session); MimeMessage message=new MimeMessage(session);
//邮件标题 //邮件标题
message.setSubject(title); message.setSubject(title);
//邮件内容(文本) //邮件内容(文本)
message.setText(content,"utf-8"); message.setText(content,"utf-8");
//设置发送方地址 //设置发送方地址
message.setFrom(new InternetAddress(mailName)); message.setFrom(new InternetAddress(mailName));
//设置收件方地址 //设置收件方地址
message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receiveAddress)); message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(receiveAddress));
//发送 //发送
Transport.send(message); Transport.send(message);
return R.ok();
}catch (Exception e) {
return R.error(e.getMessage());
}
} }
} }

View File

@@ -237,8 +237,7 @@ public class MyUserController {
//redis 缓存验证码 //redis 缓存验证码
redisTemplate.opsForValue().set("RegistEMail"+email,timeCode,5, TimeUnit.MINUTES); redisTemplate.opsForValue().set("RegistEMail"+email,timeCode,5, TimeUnit.MINUTES);
//发送 //发送
MailUtil.sendMail("疯子读书邮箱验证码",code,email); return MailUtil.sendMail("疯子读书邮箱验证码",code,email);
return R.ok();
} }
@RequestMapping("/register") @RequestMapping("/register")
@@ -276,43 +275,41 @@ public class MyUserController {
* 常规注册 / 验证码 登录 * 常规注册 / 验证码 登录
*/ */
@RequestMapping("/registerOrLogin") @RequestMapping("/registerOrLogin")
public R register(@RequestParam("tel") String tel, public R register(String tel, String code) {
@RequestParam("code") String code) {
String redisCode = redisTemplate.opsForValue().get("RegistCode" + tel); String redisCode = redisTemplate.opsForValue().get("RegistCode" + tel);
System.out.println(redisCode); System.out.println(redisCode);
if (StringUtils.isEmpty(redisCode)){ if (StringUtils.isEmpty(redisCode)){
return R.error(500,"短信验证码已过期,请重试"); return R.error(500,"短信验证码已过期,请重试");
} }
String lcode = redisCode.split("_")[0]; String lcode = redisCode.split("_")[0];
if (!lcode.equals(code)) { if (!lcode.equals(code)) {
return R.error(500,"短信验证码不符!"); return R.error(500,"短信验证码不符!");
} }
//查询是否存在当前用户手机号 //查询是否存在当前用户手机号
MyUserEntity userEntity = userService.getBaseMapper().selectOne(new QueryWrapper<MyUserEntity>().eq("tel", tel)); LambdaQueryWrapper<MyUserEntity> wrapper = new LambdaQueryWrapper();
if (tel.contains("@")){
wrapper.eq(MyUserEntity::getEmail,tel);
if (userEntity == null) { }else {
// 用户不存在则创建用户 注册成功 wrapper.eq(MyUserEntity::getTel,tel);
MyUserEntity myUserEntity = new MyUserEntity(); }
wrapper.orderByDesc(MyUserEntity::getLastLoginTime);
//防止多账号报错
List<MyUserEntity> userList = userService.getBaseMapper().selectList(wrapper);
if (userList == null || userList.size() == 0) {
// 用户不存在则创建用户 注册成功
MyUserEntity myUserEntity = new MyUserEntity();
if (tel.contains("@")){
myUserEntity.setEmail(tel);
}else {
myUserEntity.setTel(tel); myUserEntity.setTel(tel);
userService.save(myUserEntity);
R r = sysUserTokenService.createToken(myUserEntity.getId());
return R.ok("注册成功").put("userInfo",myUserEntity).put("token",r);
} }
userService.save(myUserEntity);
if (userEntity != null) { R r = sysUserTokenService.createToken(myUserEntity.getId());
R r = sysUserTokenService.createToken(userEntity.getId()); return R.ok("注册成功").put("userInfo",myUserEntity).put("token",r);
return R.ok("登录成功!").put("userInfo",userEntity).put("token",r); }else {
} R r = sysUserTokenService.createToken(userList.get(0).getId());
return R.ok("登录成功!").put("userInfo",userList.get(0)).put("token",r);
return R.ok(); }
} }
/** /**
@@ -328,21 +325,26 @@ public class MyUserController {
}else { }else {
wrapper.eq(MyUserEntity::getTel,phone); wrapper.eq(MyUserEntity::getTel,phone);
} }
MyUserEntity user = userService.getBaseMapper().selectOne(wrapper); //防止多账号报错
if (user == null) { List<MyUserEntity> userList = userService.getBaseMapper().selectList(wrapper);
if (userList == null || userList.size() == 0) {
return R.error(500,"用户不存在!"); return R.error(500,"用户不存在!");
}
if (user.getPassword() == null) {
return R.error(500,"当前未设置密码,请使用验证码登录!");
}
if (MD5Utils.getSaltverifyMD5(password,user.getPassword())){
// if(true){
R r = sysUserTokenService.createToken(user.getId());
return R.ok("登陆成功!").put("userInfo",user).put("token",r);
}else { }else {
int flag = 0;
for (MyUserEntity user : userList) {
if (user.getPassword() == null) {
flag++;
}
if (MD5Utils.getSaltverifyMD5(password,user.getPassword())){
R r = sysUserTokenService.createToken(user.getId());
return R.ok("登陆成功!").put("userInfo",user).put("token",r);
}
}
if (flag>0){
return R.error(500,"当前未设置密码,请使用验证码登录!");
}
return R.error(500,"密码不正确,请重试!"); return R.error(500,"密码不正确,请重试!");
} }
} }
/** /**