1、登录后存储用户对象的redis函数
@Autowired
private StringRedisTemplate redisTemplate;
@PostMapping(value = "/login")
public R login(UserInfo userInfo){
String uuid = Utils.getUUID();
String value = JSON.toJSONString(userInfo);
stringRedisTemplate.opsForValue().set(uuid,value);
//30分钟后自动退出
stringRedisTemplate.expire(uuid,30, TimeUnit.MINUTES);
return R.ok("token",uuid);
}
2、调用接口的时候的登录状态的授权
@GetMapping(value = "/isLogin")
@ResponseBody
public UserInfo isLogin(@RequestParam("token") String token){
String userInfoStr = stringRedisTemplate.opsForValue().get(token).toString();
if (userInfoStr==""||userInfoStr==null){
return null;
}else {
//刷新redis的值30分钟
stringRedisTemplate.expire(token,30, TimeUnit.MINUTES);
//返回登录的用户对象
UserInfo userInfo = JSON.parseObject(userInfoStr,UserInfo.class);
return userInfo;
}
}