管理任意切换其他的用户 -- 代码实现 不需要密码前端只需要传个用户账号即可
后端接口返回token 前端只需要替换
后端代码
@Override
public UserVO switchUsers(LoginDTO loginDTO) {
// 获取账号名称
String loginName = loginDTO.getUsername();
// 查询用户信息
Example example = new Example(User.class);
example.createCriteria().andEqualTo("username", loginName);
User user1 = userMapper.selectOneByExample(example);
// 获取当前用户信息
Subject subject = SecurityUtils.getSubject();
// 将用户信息存入redis中
RedisHelper.add(subject.getSession().getId() + "", user1);
User user2 = (User) RedisHelper.get(subject.getSession().getId() + "");
UserVO userVO = new UserVO();
// if(user2 != null){
// userVO = (UserVO) AttributeReflectUtil.copyData(new UserVO(), user2, false, true);
// }
userVO.setLoginToken(subject.getSession().getId() + "");
System.out.println(userVO);
// 将用户信息存入redis中
RedisHelper.updateExpire(subject.getSession().getId() + "", 180 * 60);
return userVO;
}