12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package com.zy.bms.common.redis;
- import com.alibaba.fastjson.JSON;
- import com.zy.bms.common.Constant;
- import com.zy.bms.entity.Admin;
- import com.zy.bms.utils.RandomCode;
- import org.springframework.data.redis.core.StringRedisTemplate;
- import org.springframework.stereotype.Component;
- import javax.annotation.Resource;
- import java.util.concurrent.TimeUnit;
- @Component
- public class SessionManager {
- @Resource
- private StringRedisTemplate stringRedisTemplate;
-
- private final int timeout = 30;
-
- public String generateToken(Admin admin) {
- String token = RandomCode.UUID();
- stringRedisTemplate.boundValueOps(Constant.PREF.REDIS_TOKEN + token)
- .set(JSON.toJSONString(admin), timeout, TimeUnit.MINUTES);
- return token;
- }
-
- public void removeToken(String token) {
- if (token == null) return;
- stringRedisTemplate.delete(Constant.PREF.REDIS_TOKEN + token);
- }
-
- public Admin getUser(String token) {
- if (token == null) return null;
- return JSON.parseObject(stringRedisTemplate.boundValueOps(Constant.PREF.REDIS_TOKEN + token).get(), Admin.class);
- }
-
- public boolean valid(String token) {
- String key = Constant.PREF.REDIS_TOKEN + token;
- if (token == null) return false;
- Boolean flag = stringRedisTemplate.hasKey(key);
- if (flag == null || !flag) return false;
- stringRedisTemplate.expire(key, timeout, TimeUnit.MINUTES);
- return true;
- }
- }
|