验证码登录修改

master
Xusan 2024-05-21 13:59:07 +08:00
parent d908354926
commit f34ee35d91
5 changed files with 65 additions and 40 deletions

View File

@ -185,7 +185,7 @@ public class UserController {
@GetMapping(value = "loginByCode/{phone}/{code}")
public ResultJson loginByCode(@PathVariable("phone") String phone,@PathVariable("code") String code) {
return ResultJson.ok(service.loginByCode(phone,code));
return ResultJson.ok(service.loginByCode(phone,code.toUpperCase()));
}

View File

@ -1,16 +1,22 @@
package com.whdc.model.entity;
import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.whdc.model.group.Insert;
import com.whdc.model.group.Update;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;import java.io.Serializable;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
@ -45,6 +51,7 @@ public class LoginInfo extends Model<LoginInfo> implements Serializable {
@TableField("CREATE_TIME")
@ApiModelProperty(value = "新增时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@NotEmpty(message = "0:密码登录 1:验证码登录不能为空", groups = {Insert.class, Update.class})

View File

@ -1,16 +1,22 @@
package com.whdc.model.entity;
import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.whdc.model.group.Insert;
import com.whdc.model.group.Update;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;import java.io.Serializable;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
@ -55,6 +61,7 @@ public class User extends Model<User> implements Serializable {
@TableField("LAST_DATE")
@ApiModelProperty(value = "最后登录时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date lastLoginDate;
@TableField("ROLE")

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.whdc.model.group.Insert;
import com.whdc.model.group.Update;
import io.swagger.annotations.ApiModel;
@ -59,6 +60,7 @@ public class Versions extends Model<Versions> implements Serializable {
@TableField("CREATE_TIME")
@ApiModelProperty(value = "新增时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@TableField("TYPE")

View File

@ -1,5 +1,7 @@
package com.whdc.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -19,6 +21,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.whdc.utils.ResultJson;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpStatus;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
@ -150,9 +153,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
// 判断是否以发送
String key = REDIS_KEY + "code:" + phone;
String code = String.valueOf(stringRedisTemplate.opsForValue().get(key));
if (StringUtils.isBlank(code)) {
if (StringUtils.isBlank(code) || "null".equals(code)) {
// 生成验证码
String numCode = getNumCode();
String numCode = getNumCode().toUpperCase();
push(phone, numCode);
stringRedisTemplate.opsForValue().set(key, numCode, 60, TimeUnit.SECONDS);
} else {
@ -227,23 +230,24 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
String yzm2 = ""; //定义一个空的Atring变量用来接收生成的验证码
for (int i = 0; i < 5; i++) { //循环5次每次生成一位5位验证码
int a = yzm.nextInt(3); //验证码包括数字、大小写字母组成
switch (a) { //a: 0 1 2
case 0: // 数字 小写字母 大写字母
char s = (char) (yzm.nextInt(26) + 65);
yzm2 = yzm2 + s;
break;
case 1:
char s1 = (char) (yzm.nextInt(26) + 97);
yzm2 = yzm2 + s1;
break;
case 2:
int s2 = yzm.nextInt(10);
yzm2 = yzm2 + s2;
break;
}
for (int i = 0; i < 6; i++) {
//循环5次每次生成一位5位验证码
yzm2 = yzm2 + yzm.nextInt(10);
// int a = yzm.nextInt(1); //验证码包括数字、大小写字母组成
// switch (a) { //a: 0 1 2
// case 0: // 数字 小写字母 大写字母
// char s = (char) (yzm.nextInt(26) + 65);
// yzm2 = yzm2 + s;
// break;
// case 1:
// char s1 = (char) (yzm.nextInt(26) + 97);
// yzm2 = yzm2 + s1;
// break;
// case 2:
// int s2 = yzm.nextInt(10);
// yzm2 = yzm2 + s2;
// break;
// }
}
return yzm2;
}
@ -259,9 +263,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
String content = "您正在登录湖北省防汛抗旱通讯录,验证码为:" + code + ",若非本人操作,请勿将验证码泄露他人。";
String body = "{\n" +
" \"channel\": \"[phone]\",\n" +
" \"channel\": [\"phone\"],\n" +
" \"content\": \"" + content + "\",\n" +
" \"devices\": \"['" + phone + "']\",\n" +
" \"devices\": [\"" + phone + "\"],\n" +
" \"foreignId\": \"" + UUID.randomUUID() + "\",\n" +
" \"source\": \"山洪app\",\n" +
// " \"token\": \"\",\n" +
@ -272,7 +276,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
String s = HttpUtil.sendPost("http://223.75.53.141:82/shpush/v1/push/", body);
log.info("发送结果: " + s);
JSONObject jsonObject = JSON.parseObject(s);
if (jsonObject.getInteger("code") != HttpStatus.SC_OK){
throw new MyException(jsonObject.getString("message"));
}
}
@ -312,8 +319,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
}
public static void main(String[] args) {
String salt = UUID.randomUUID().toString().replaceAll("-", "");
System.out.println(salt);
System.out.println(DigestUtils.md5DigestAsHex((salt + DEFAULT_PASSWORD).getBytes()));
// String salt = UUID.randomUUID().toString().replaceAll("-", "");
// System.out.println(salt);
// System.out.println(DigestUtils.md5DigestAsHex((salt + DEFAULT_PASSWORD).getBytes()));
String numCode = getNumCode();
System.out.println();
}
}