登录token有效时长变更
This commit is contained in:
parent
efbc063a2f
commit
6aca092e12
|
|
@ -171,7 +171,7 @@ public class TokenController {
|
||||||
}else{
|
}else{
|
||||||
LoginUser login = strategy.login(username, password);
|
LoginUser login = strategy.login(username, password);
|
||||||
logService.saveLogin(username, "登录", "登录成功", null, "成功");
|
logService.saveLogin(username, "登录", "登录成功", null, "成功");
|
||||||
return R.ok(tokenService.createKitchenStaffToken(login));
|
return R.ok(tokenService.createDeviceStaffToken(login));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,14 +122,42 @@ public class TokenService {
|
||||||
rspMap.put("staffId", loginUser.getUserid());
|
rspMap.put("staffId", loginUser.getUserid());
|
||||||
rspMap.put("staffName", loginUser.getSysUser().getNickName());
|
rspMap.put("staffName", loginUser.getSysUser().getNickName());
|
||||||
rspMap.put("mobile", loginUser.getSysUser().getPhonenumber());
|
rspMap.put("mobile", loginUser.getSysUser().getPhonenumber());
|
||||||
|
long tokenTime = getTokenTime();
|
||||||
|
System.err.println("tokenTime="+tokenTime);
|
||||||
|
//对token进行存储
|
||||||
|
redisService.setCacheObject(LOGIN_STAFF_KEY + userId, token, tokenTime, TimeUnit.MINUTES);
|
||||||
|
return rspMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> createDeviceStaffToken(LoginUser loginUser) {
|
||||||
|
// 检查并删除已有的token
|
||||||
|
//delExistingToken(loginUser.getSysUser().getUserId());
|
||||||
|
String token = IdUtils.fastUUID();
|
||||||
|
Long userId = loginUser.getSysUser().getUserId();
|
||||||
|
String userName = loginUser.getSysUser().getUserName();
|
||||||
|
loginUser.setToken(token);
|
||||||
|
loginUser.setUserid(userId);
|
||||||
|
loginUser.setUsername(userName);
|
||||||
|
loginUser.setIpaddr(IpUtils.getIpAddr());
|
||||||
|
refreshDeviceToken(loginUser);
|
||||||
|
// Jwt存储信息
|
||||||
|
Map<String, Object> claimsMap = new HashMap<String, Object>(16);
|
||||||
|
claimsMap.put(SecurityConstants.USER_KEY, token);
|
||||||
|
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
|
||||||
|
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
|
||||||
|
String accessToken = JwtUtils.createToken(claimsMap);
|
||||||
|
Map<String, Object> rspMap = new HashMap<String, Object>(16);
|
||||||
|
rspMap.put("access_token", accessToken);
|
||||||
|
rspMap.put("expires_in", EXPIRETIME);
|
||||||
|
rspMap.put("isLogin", isLogin(String.valueOf(userId)));
|
||||||
|
rspMap.put("deviceTypes", loginUser.getPermissions());
|
||||||
|
rspMap.put("staffId", loginUser.getUserid());
|
||||||
|
rspMap.put("staffName", loginUser.getSysUser().getNickName());
|
||||||
|
rspMap.put("mobile", loginUser.getSysUser().getPhonenumber());
|
||||||
long tokenTime = getKitchenTokenTime();
|
long tokenTime = getKitchenTokenTime();
|
||||||
System.err.println("tokenTime="+tokenTime);
|
System.err.println("tokenTime="+tokenTime);
|
||||||
//对token进行存储
|
//对token进行存储
|
||||||
redisService.setCacheObject(LOGIN_STAFF_KEY + userId, token, tokenTime, TimeUnit.MINUTES);
|
redisService.setCacheObject(LOGIN_STAFF_KEY + userId, token, tokenTime, TimeUnit.MINUTES);
|
||||||
// 验证设置
|
|
||||||
Long actualExpire = redisService.getExpire(LOGIN_STAFF_KEY + userId);
|
|
||||||
log.info("期望过期时间: {}分钟, 实际过期时间: {}秒",
|
|
||||||
tokenTime*60, actualExpire);
|
|
||||||
return rspMap;
|
return rspMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -237,6 +265,15 @@ public class TokenService {
|
||||||
String userKey = getTokenKey(loginUser.getToken());
|
String userKey = getTokenKey(loginUser.getToken());
|
||||||
redisService.setCacheObject(userKey, loginUser, tokenTime, TimeUnit.MINUTES);
|
redisService.setCacheObject(userKey, loginUser, tokenTime, TimeUnit.MINUTES);
|
||||||
}
|
}
|
||||||
|
public void refreshDeviceToken(LoginUser loginUser) {
|
||||||
|
long tokenTime = getKitchenTokenTime();
|
||||||
|
loginUser.setLoginTime(System.currentTimeMillis());
|
||||||
|
loginUser.setExpireTime(loginUser.getLoginTime() + tokenTime * MILLIS_MINUTE);
|
||||||
|
// 根据uuid将loginUser缓存
|
||||||
|
String userKey = getTokenKey(loginUser.getToken());
|
||||||
|
redisService.setCacheObject(userKey, loginUser, tokenTime, TimeUnit.MINUTES);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private String getTokenKey(String token) {
|
private String getTokenKey(String token) {
|
||||||
return ACCESS_TOKEN + token;
|
return ACCESS_TOKEN + token;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue