package com.yuanchu.limslaboratory.clients; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.symmetric.AES; import com.yuanchu.limslaboratory.pojo.User; import com.yuanchu.limslaboratory.shiro.utils.JwtUtils; import com.yuanchu.limslaboratory.utils.RedisUtil; import com.yuanchu.limslaboratory.vo.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @Component public class UserLoginUtils { @Autowired private JwtUtils jwtUtils; public Result> LoginExamine(User user){ String token = JwtUtils.sign(user.getAccount()); HashMap mapRedis = new HashMap<>(); mapRedis.put("id", user.getId()); mapRedis.put("account", user.getAccount()); mapRedis.put("name", user.getName()); mapRedis.put("enterpriseId", user.getEnterpriseId()); String adminMD5 = SecureUtil.md5(SecureUtil.md5(user.getAccount())); // 构建 AES aes = SecureUtil.aes(adminMD5.getBytes(StandardCharsets.UTF_8)); String admins = aes.encryptHex(user.getAccount()); mapRedis.put("sessionLayerId", SecureUtil.md5(admins)); mapRedis.put("roleId",user.getRoleId()); //存入redis,二个小时后删除 RedisUtil.set(token, mapRedis, 120); // RedisUtil.set("access_token",token,120); // 将签发的 JWT token 返回给前端 HashMap map = new HashMap<>(); String refresh = JwtUtils.sign(user.getAccount()); map.put("token", token); map.put("refresh", refresh); RedisUtil.set(user.getAccount(), map, 168); return Result.success(map); } }