登录注册添加邮箱方式
This commit is contained in:
@@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,"密码不正确,请重试!");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user