完善了内部重置密码的接口,实现token刷新
This commit is contained in:
parent
281b04554e
commit
42028b6eab
|
@ -38,7 +38,6 @@ public class UserInfoResetRequest implements Serializable {
|
||||||
@Schema(description = "密码(建议加密存储)", example = "qingcheng")
|
@Schema(description = "密码(建议加密存储)", example = "qingcheng")
|
||||||
private String userPassword;
|
private String userPassword;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 确认密码
|
* 确认密码
|
||||||
*/
|
*/
|
||||||
|
@ -47,6 +46,11 @@ public class UserInfoResetRequest implements Serializable {
|
||||||
@Schema(description = "确认密码(建议加密存储)", example = "qingcheng")
|
@Schema(description = "确认密码(建议加密存储)", example = "qingcheng")
|
||||||
private String userConfirmPassword;
|
private String userConfirmPassword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* token(内部重置使用)
|
||||||
|
*/
|
||||||
|
@Schema(description = "token(内部重置使用)", example = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTY5MjE5MzE5NywiZXhwIjoxNjkyMTk3Nzk3fQ.Q_5Y5Z")
|
||||||
|
private String sourceToken;
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.greenorange.promotion.model.dto.userInfo.*;
|
import com.greenorange.promotion.model.dto.userInfo.*;
|
||||||
import com.greenorange.promotion.model.entity.UserInfo;
|
import com.greenorange.promotion.model.entity.UserInfo;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.greenorange.promotion.service.userInfo.impl;
|
package com.greenorange.promotion.service.userInfo.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import com.auth0.jwt.interfaces.DecodedJWT;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
@ -29,6 +30,7 @@ import com.greenorange.promotion.utils.RegexUtils;
|
||||||
import com.greenorange.promotion.utils.SendSmsUtil;
|
import com.greenorange.promotion.utils.SendSmsUtil;
|
||||||
import com.greenorange.promotion.utils.SqlUtils;
|
import com.greenorange.promotion.utils.SqlUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -277,6 +279,12 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
||||||
payload.put("userAccount", phoneNumber);
|
payload.put("userAccount", phoneNumber);
|
||||||
payload.put("userPassword", userPassword);
|
payload.put("userPassword", userPassword);
|
||||||
token = jwtUtils.generateToken(payload);
|
token = jwtUtils.generateToken(payload);
|
||||||
|
// 获取token的过期时间
|
||||||
|
String sourceToken = userInfoResetRequest.getSourceToken();
|
||||||
|
DecodedJWT decodedJWT = jwtUtils.verify(sourceToken);
|
||||||
|
long expirationTime = decodedJWT.getExpiresAt().getTime() - System.currentTimeMillis();
|
||||||
|
// 将token存入Redis黑名单,并设置过期时间与token一致
|
||||||
|
redisTemplate.opsForValue().set(sourceToken, sourceToken, expirationTime, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
// 更新token
|
// 更新token
|
||||||
return token;
|
return token;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user