Commit f812088c authored by 李健华's avatar 李健华

交换token增加过期时间

parent 421551c2
...@@ -531,6 +531,7 @@ public class UserController implements IBaseController { ...@@ -531,6 +531,7 @@ public class UserController implements IBaseController {
tokenExchange.setUserId(user.getId()); tokenExchange.setUserId(user.getId());
tokenExchange.setPhoneNo(user.getPhoneNo()); tokenExchange.setPhoneNo(user.getPhoneNo());
tokenExchange.setUuid(user.getUuid()); tokenExchange.setUuid(user.getUuid());
tokenExchange.setExpire(sessionStruct.getExpire());
return JsonResult.buildSuccessResult(null, tokenExchange); return JsonResult.buildSuccessResult(null, tokenExchange);
} }
...@@ -564,7 +565,7 @@ public class UserController implements IBaseController { ...@@ -564,7 +565,7 @@ public class UserController implements IBaseController {
// 根据返回值生成token, 返回值包含user:session:token的值 // 根据返回值生成token, 返回值包含user:session:token的值
sessionValue.setUser(user); sessionValue.setUser(user);
sessionValue.setLoginProperties(loginProperties); sessionValue.setLoginProperties(loginProperties);
sessionService.persistSessionExchange(token, sessionValue); sessionService.persistSessionExchange(token, sessionValue, tokenExchange.getExpire());
} }
} }
......
...@@ -26,4 +26,6 @@ public class TokenExchange implements Serializable { ...@@ -26,4 +26,6 @@ public class TokenExchange implements Serializable {
private String loginProperties; private String loginProperties;
private Long expire = 15 * 24 * 60 * 60L;
} }
...@@ -16,6 +16,7 @@ public class SessionStruct implements Serializable { ...@@ -16,6 +16,7 @@ public class SessionStruct implements Serializable {
private static final long serialVersionUID = -1L; private static final long serialVersionUID = -1L;
private String sid; private String sid;
private SessionValue values; private SessionValue values;
private long expire;
public void setAttribute(String key, String value) { public void setAttribute(String key, String value) {
if (value == null) { if (value == null) {
......
...@@ -42,5 +42,5 @@ public interface ISessionService { ...@@ -42,5 +42,5 @@ public interface ISessionService {
*/ */
void deleteSession(String token); void deleteSession(String token);
void persistSessionExchange(String token, SessionValue sessionValue); void persistSessionExchange(String token, SessionValue sessionValue, long expire);
} }
...@@ -287,14 +287,14 @@ public class SessionServiceImpl implements ISessionService { ...@@ -287,14 +287,14 @@ public class SessionServiceImpl implements ISessionService {
} }
@Override @Override
public void persistSessionExchange(String token, SessionValue sessionValue) { public void persistSessionExchange(String token, SessionValue sessionValue, long expire) {
Timestamp current = new Timestamp(System.currentTimeMillis()); Timestamp current = new Timestamp(System.currentTimeMillis());
sessionValue.setLastAccessTime(current); sessionValue.setLastAccessTime(current);
String json = JSON.toJSONString(sessionValue); String json = JSON.toJSONString(sessionValue);
stringRedisTemplate.opsForValue().set(Constants.Session.USER_SESSION_CACHE + token, json, stringRedisTemplate.opsForValue().set(Constants.Session.USER_SESSION_CACHE + token, json,
Constants.Session.SESSION_VALID_TIME, TimeUnit.SECONDS); Constants.Session.SESSION_VALID_TIME, TimeUnit.SECONDS);
String key = generateLoginPropertiesKey(sessionValue.getUser().getId(), sessionValue.getLoginProperties()); String key = generateLoginPropertiesKey(sessionValue.getUser().getId(), sessionValue.getLoginProperties());
stringRedisTemplate.opsForValue().set(key, token, Constants.Session.SESSION_VALID_TIME, TimeUnit.SECONDS); stringRedisTemplate.opsForValue().set(key, token, expire, TimeUnit.SECONDS);
setUserIdTokenKeys(sessionValue.getUser().getId(), key); setUserIdTokenKeys(sessionValue.getUser().getId(), key);
} }
......
...@@ -69,6 +69,7 @@ public class XyqbSessionContextHolder { ...@@ -69,6 +69,7 @@ public class XyqbSessionContextHolder {
SessionStruct sessionStruct = new SessionStruct(); SessionStruct sessionStruct = new SessionStruct();
sessionStruct.setSid(token); sessionStruct.setSid(token);
sessionStruct.setValues(values); sessionStruct.setValues(values);
sessionStruct.setExpire(redisTemplate.getExpire(Constants.Session.USER_SESSION_CACHE + token));
return sessionStruct; return sessionStruct;
} catch (Exception e) { } catch (Exception e) {
log.warn("[XyqbSessionContextHolder][getXSessionFromRedis] 序列化SessionValue出错:sid:{},sessionValue:{}", token, result, e); log.warn("[XyqbSessionContextHolder][getXSessionFromRedis] 序列化SessionValue出错:sid:{},sessionValue:{}", token, result, e);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment