|
@@ -20,6 +20,7 @@ import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
+import org.springframework.session.data.redis.RedisOperationsSessionRepository;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
@@ -38,6 +39,8 @@ import java.util.concurrent.TimeUnit;
|
|
|
*/
|
|
|
@Service
|
|
|
public class LoginService implements ILoginService {
|
|
|
+ @Resource
|
|
|
+ private RedisOperationsSessionRepository sessionRepository;
|
|
|
|
|
|
@Resource
|
|
|
private IUserService userService;
|
|
@@ -165,7 +168,7 @@ public class LoginService implements ILoginService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public RestResponse resetPassword(UserRequest userRequest) {
|
|
|
+ public RestResponse resetPassword(UserRequest userRequest, HttpSession session) {
|
|
|
RestResponse verifyResult = verifySmsCode(userRequest.getMobile(), userRequest.getInputSmsCode());
|
|
|
//如果结果不为空说明校验未通过
|
|
|
if (verifyResult != null) {
|
|
@@ -182,7 +185,7 @@ public class LoginService implements ILoginService {
|
|
|
userAccount.setPassword(newPassword);
|
|
|
userAccountService.updateById(userAccount);
|
|
|
redisTemplate.delete(userRequest.getToken());
|
|
|
- this.blankingUserInfoIntoRedis(userRequest.getMobile(), userRequest.getToken());
|
|
|
+ this.blankingUserInfoIntoRedis(userRequest.getMobile(), userRequest.getToken(),session);
|
|
|
return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "重置密码成功");
|
|
|
}
|
|
|
|
|
@@ -278,8 +281,9 @@ public class LoginService implements ILoginService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void blankingUserInfoIntoRedis(String mobile, String token) {
|
|
|
+ public void blankingUserInfoIntoRedis(String mobile, String token, HttpSession session) {
|
|
|
String mobileUserInfo = mobile + ApiConstants.UserConstants.USER_INFO_MOBILE;
|
|
|
+ sessionRepository.deleteById(session.getId());
|
|
|
redisTemplate.delete(token);
|
|
|
redisTemplate.delete(mobileUserInfo + ApiConstants.ACCESS_TYPE_PC);
|
|
|
redisTemplate.delete(mobileUserInfo + ApiConstants.ACCESS_TYPE_APP);
|