移除用户注册功能,移除相关接口和监听器逻辑

This commit is contained in:
柏码の讲师 2023-11-30 15:14:08 +08:00
parent f4d89cdbc2
commit 70d7cca7cd
6 changed files with 2 additions and 87 deletions

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
### IntelliJ IDEA ### ### IntelliJ IDEA ###
out/ out/
.idea/ .idea/
log/
!**/src/main/**/out/ !**/src/main/**/out/
!**/src/test/**/out/ !**/src/test/**/out/

View File

@ -2,7 +2,6 @@ package com.example.controller;
import com.example.entity.RestBean; import com.example.entity.RestBean;
import com.example.entity.vo.request.ConfirmResetVO; import com.example.entity.vo.request.ConfirmResetVO;
import com.example.entity.vo.request.EmailRegisterVO;
import com.example.entity.vo.request.EmailResetVO; import com.example.entity.vo.request.EmailResetVO;
import com.example.service.AccountService; import com.example.service.AccountService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -39,24 +38,12 @@ public class AuthorizeController {
@GetMapping("/ask-code") @GetMapping("/ask-code")
@Operation(summary = "请求邮件验证码") @Operation(summary = "请求邮件验证码")
public RestBean<Void> askVerifyCode(@RequestParam @Email String email, public RestBean<Void> askVerifyCode(@RequestParam @Email String email,
@RequestParam @Pattern(regexp = "(register|reset)") String type, @RequestParam @Pattern(regexp = "(reset)") String type,
HttpServletRequest request){ HttpServletRequest request){
return this.messageHandle(() -> return this.messageHandle(() ->
accountService.registerEmailVerifyCode(type, String.valueOf(email), request.getRemoteAddr())); accountService.registerEmailVerifyCode(type, String.valueOf(email), request.getRemoteAddr()));
} }
/**
* 进行用户注册操作需要先请求邮件验证码
* @param vo 注册信息
* @return 是否注册成功
*/
@PostMapping("/register")
@Operation(summary = "用户注册操作")
public RestBean<Void> register(@RequestBody @Valid EmailRegisterVO vo){
return this.messageHandle(() ->
accountService.registerEmailAccount(vo));
}
/** /**
* 执行密码重置确认检查验证码是否正确 * 执行密码重置确认检查验证码是否正确
* @param vo 密码重置信息 * @param vo 密码重置信息

View File

@ -1,22 +0,0 @@
package com.example.entity.vo.request;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
/**
* 用户注册表单信息
*/
@Data
public class EmailRegisterVO {
@Email
String email;
@Length(max = 6, min = 6)
String code;
@Pattern(regexp = "^[a-zA-Z0-9\\u4e00-\\u9fa5]+$")
@Length(min = 1, max = 10)
String username;
@Length(min = 6, max = 20)
String password;
}

View File

@ -32,10 +32,6 @@ public class MailQueueListener {
String email = data.get("email").toString(); String email = data.get("email").toString();
Integer code = (Integer) data.get("code"); Integer code = (Integer) data.get("code");
SimpleMailMessage message = switch (data.get("type").toString()) { SimpleMailMessage message = switch (data.get("type").toString()) {
case "register" ->
createMessage("欢迎注册我们的网站",
"您的邮件注册验证码为: "+code+"有效时间3分钟为了保障您的账户安全请勿向他人泄露验证码信息。",
email);
case "reset" -> case "reset" ->
createMessage("您的密码重置邮件", createMessage("您的密码重置邮件",
"你好,您正在执行重置密码操作,验证码: "+code+"有效时间3分钟如非本人操作请无视。", "你好,您正在执行重置密码操作,验证码: "+code+"有效时间3分钟如非本人操作请无视。",

View File

@ -3,14 +3,12 @@ package com.example.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.example.entity.dto.Account; import com.example.entity.dto.Account;
import com.example.entity.vo.request.ConfirmResetVO; import com.example.entity.vo.request.ConfirmResetVO;
import com.example.entity.vo.request.EmailRegisterVO;
import com.example.entity.vo.request.EmailResetVO; import com.example.entity.vo.request.EmailResetVO;
import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UserDetailsService;
public interface AccountService extends IService<Account>, UserDetailsService { public interface AccountService extends IService<Account>, UserDetailsService {
Account findAccountByNameOrEmail(String text); Account findAccountByNameOrEmail(String text);
String registerEmailVerifyCode(String type, String email, String address); String registerEmailVerifyCode(String type, String email, String address);
String registerEmailAccount(EmailRegisterVO info);
String resetEmailAccountPassword(EmailResetVO info); String resetEmailAccountPassword(EmailResetVO info);
String resetConfirm(ConfirmResetVO info); String resetConfirm(ConfirmResetVO info);
} }

View File

@ -1,10 +1,8 @@
package com.example.service.impl; package com.example.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.entity.dto.Account; import com.example.entity.dto.Account;
import com.example.entity.vo.request.ConfirmResetVO; import com.example.entity.vo.request.ConfirmResetVO;
import com.example.entity.vo.request.EmailRegisterVO;
import com.example.entity.vo.request.EmailResetVO; import com.example.entity.vo.request.EmailResetVO;
import com.example.mapper.AccountMapper; import com.example.mapper.AccountMapper;
import com.example.service.AccountService; import com.example.service.AccountService;
@ -20,7 +18,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Map; import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -86,30 +83,6 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
} }
} }
/**
* 邮件验证码注册账号操作需要检查验证码是否正确以及邮箱用户名是否存在重名
* @param info 注册基本信息
* @return 操作结果null表示正常否则为错误原因
*/
public String registerEmailAccount(EmailRegisterVO info){
String email = info.getEmail();
String code = this.getEmailVerifyCode(email);
if(code == null) return "请先获取验证码";
if(!code.equals(info.getCode())) return "验证码错误,请重新输入";
if(this.existsAccountByEmail(email)) return "该邮件地址已被注册";
String username = info.getUsername();
if(this.existsAccountByUsername(username)) return "该用户名已被他人使用,请重新更换";
String password = passwordEncoder.encode(info.getPassword());
Account account = new Account(null, info.getUsername(),
password, email, Const.ROLE_DEFAULT, new Date());
if(!this.save(account)) {
return "内部错误,注册失败";
} else {
this.deleteEmailVerifyCode(email);
return null;
}
}
/** /**
* 邮件验证码重置密码操作需要检查验证码是否正确 * 邮件验证码重置密码操作需要检查验证码是否正确
* @param info 重置基本信息 * @param info 重置基本信息
@ -182,22 +155,4 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
.eq("email", text) .eq("email", text)
.one(); .one();
} }
/**
* 查询指定邮箱的用户是否已经存在
* @param email 邮箱
* @return 是否存在
*/
private boolean existsAccountByEmail(String email){
return this.baseMapper.exists(Wrappers.<Account>query().eq("email", email));
}
/**
* 查询指定用户名的用户是否已经存在
* @param username 用户名
* @return 是否存在
*/
private boolean existsAccountByUsername(String username){
return this.baseMapper.exists(Wrappers.<Account>query().eq("username", username));
}
} }