|
|
|
@ -2,10 +2,9 @@ package com.baiye.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.text.CharSequenceUtil;
|
|
|
|
|
import com.baiye.constant.SecurityConstants;
|
|
|
|
|
import com.baiye.entity.OnlineUser;
|
|
|
|
|
import com.baiye.service.IOnlineUserService;
|
|
|
|
|
|
|
|
|
|
import com.baiye.constant.SecurityConstants;
|
|
|
|
|
import com.baiye.util.CacheKey;
|
|
|
|
|
import com.baiye.util.PageUtil;
|
|
|
|
|
import com.baiye.util.RedisUtils;
|
|
|
|
@ -22,12 +21,7 @@ import org.springframework.web.context.request.RequestContextHolder;
|
|
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.time.ZoneId;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@ -67,8 +61,7 @@ public class OnlineServiceImpl implements IOnlineUserService {
|
|
|
|
|
String tokenValue = accessToken.getValue();
|
|
|
|
|
int expiresIn = accessToken.getExpiresIn();
|
|
|
|
|
String refreshToken = accessToken.getRefreshToken().getValue();
|
|
|
|
|
OnlineUser onlineUser = new OnlineUser(userId, username, browser, ip, cityInfo,
|
|
|
|
|
LocalDateTime.now(ZoneId.systemDefault()), tokenValue, refreshToken, expiresIn);
|
|
|
|
|
OnlineUser onlineUser = new OnlineUser(userId, username, browser, ip, cityInfo, new Date(), tokenValue, refreshToken, expiresIn);
|
|
|
|
|
this.redisUtils.set(CacheKey.ONLINE_USER + userId, onlineUser, expiresIn, TimeUnit.SECONDS);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -99,12 +92,13 @@ public class OnlineServiceImpl implements IOnlineUserService {
|
|
|
|
|
} else if (userId == null) {
|
|
|
|
|
userId = (Long) oAuth2AccessToken.getAdditionalInformation().get(SecurityConstants.DETAILS_USER_ID);
|
|
|
|
|
}
|
|
|
|
|
String username = (String) oAuth2AccessToken.getAdditionalInformation().get(SecurityConstants.DETAILS_USERNAME);
|
|
|
|
|
// 判断oAuth2AccessToken是否为空,oAuth2AccessToken是否有token的值
|
|
|
|
|
if (BeanUtil.isEmpty(oAuth2AccessToken)) {
|
|
|
|
|
// 都为空说明已经注销,直接返回true
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
String username = (String) oAuth2AccessToken.getAdditionalInformation().get(SecurityConstants.DETAILS_USERNAME);
|
|
|
|
|
// 判断oAuth2AccessToken是否为空,oAuth2AccessToken是否有token的值
|
|
|
|
|
|
|
|
|
|
// 清理redis中存储的信息
|
|
|
|
|
this.redisTokenStore.removeAccessToken(oAuth2AccessToken);
|
|
|
|
|
// 清空刷新token
|
|
|
|
|