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<Map<String, Object>> LoginExamine(User user){
|
String token = JwtUtils.sign(user.getAccount());
|
HashMap<String, Object> 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<String, Object> 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);
|
}
|
|
}
|