集成微信登录双token
This commit is contained in:
@@ -48,7 +48,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
||||
}
|
||||
if (StringUtils.isNotNull(loginSiteUser) && StringUtils.isNull(SiteSecurityUtils.getAuthentication()))
|
||||
{
|
||||
tokenSiteService.verifyToken(loginSiteUser);
|
||||
//tokenSiteService.verifyToken(loginSiteUser);
|
||||
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginSiteUser, null,loginSiteUser.getAuthorities());
|
||||
authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
||||
SecurityContextHolder.getContext().setAuthentication(authenticationToken);
|
||||
|
||||
@@ -173,7 +173,23 @@ public class SysLoginService
|
||||
recordLoginInfo(appUser);
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(appUser.getName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||
recordLoginInfo(appUser);
|
||||
// 生成token //tokenSiteService.noExpireCreateToken(loginSiteUser);//createTokenHourTwo
|
||||
// 生成token //tokenSiteService.noExpireCreateToken(loginSiteUser);//createTokenHourTwo//createTokenSevenDay
|
||||
return tokenSiteService.createTokenSevenDay(loginSiteUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成refreshToken
|
||||
* @param appUser
|
||||
* @return
|
||||
*/
|
||||
public String loginUserrefreshToken(AppUser appUser)
|
||||
{
|
||||
LoginSiteUser loginSiteUser = new LoginSiteUser();
|
||||
loginSiteUser.setUserId(appUser.getUserId());
|
||||
loginSiteUser.setUser(appUser);
|
||||
recordLoginInfo(appUser);
|
||||
AsyncManager.me().execute(AsyncFactory.recordLogininfor(appUser.getName(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
|
||||
recordLoginInfo(appUser);
|
||||
return tokenSiteService.createTokenSevenDay(loginSiteUser);
|
||||
}
|
||||
|
||||
@@ -294,6 +310,8 @@ public class SysLoginService
|
||||
}
|
||||
String token = loginUserIdApp(existingUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
ajax.put(Constants.EXPIRES_IN,Constants.REDIS_TIME_OUT);
|
||||
ajax.put(Constants.REFRESH_TOKEN,loginUserrefreshToken(existingUser));
|
||||
ajax.put("isNewUser", false);
|
||||
ajax.put("idCard",existingUser.getIdCard());
|
||||
ajax.put("isCompanyUser",existingUser.getIsCompanyUser());
|
||||
@@ -332,6 +350,8 @@ public class SysLoginService
|
||||
}
|
||||
ajax.put("isNewUser", isNewUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
ajax.put(Constants.EXPIRES_IN,Constants.REDIS_TIME_OUT);
|
||||
ajax.put(Constants.REFRESH_TOKEN,loginUserrefreshToken(existingUser));
|
||||
System.out.println("返回ajax====================================="+JSON.toJSONString(ajax));
|
||||
return ajax;
|
||||
}
|
||||
@@ -793,6 +813,8 @@ public class SysLoginService
|
||||
updateAppUserCommon(specialUser, null, null, null,specialUser.getOrgType());
|
||||
String token = loginUserIdApp(specialUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
ajax.put(Constants.EXPIRES_IN,Constants.REDIS_TIME_OUT);
|
||||
ajax.put(Constants.REFRESH_TOKEN,loginUserrefreshToken(specialUser));
|
||||
ajax.put("isNewUser", false);
|
||||
ajax.put("idCard", StringUtil.desensitizeIdCard(specialUser.getIdCard()));
|
||||
ajax.put("isCompanyUser", specialUser.getIsCompanyUser());
|
||||
@@ -820,6 +842,8 @@ public class SysLoginService
|
||||
updateAppUserCommon(existingUser, null, null, userType,orgType);
|
||||
String token = loginUserIdApp(existingUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
ajax.put(Constants.EXPIRES_IN,Constants.REDIS_TIME_OUT);
|
||||
ajax.put(Constants.REFRESH_TOKEN,loginUserrefreshToken(existingUser));
|
||||
ajax.put("isNewUser", false);
|
||||
ajax.put("idCard", existingUser.getIdCard());
|
||||
ajax.put("isCompanyUser", existingUser.getIsCompanyUser());
|
||||
@@ -857,6 +881,8 @@ public class SysLoginService
|
||||
phoneUser.setIsCompanyUser(userType);
|
||||
String token = loginUserIdApp(phoneUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
ajax.put(Constants.EXPIRES_IN,Constants.REDIS_TIME_OUT);
|
||||
ajax.put(Constants.REFRESH_TOKEN,loginUserrefreshToken(phoneUser));
|
||||
ajax.put("isNewUser", false);
|
||||
ajax.put("idCard", phoneUser.getIdCard());
|
||||
ajax.put("isCompanyUser", phoneUser.getIsCompanyUser());
|
||||
@@ -881,6 +907,8 @@ public class SysLoginService
|
||||
appUserService.insertAppUser(newUser);
|
||||
String token = loginUserIdApp(newUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
ajax.put(Constants.EXPIRES_IN,Constants.REDIS_TIME_OUT);
|
||||
ajax.put(Constants.REFRESH_TOKEN,loginUserrefreshToken(newUser));
|
||||
ajax.put("isNewUser", true);
|
||||
ajax.put("idCard", null);
|
||||
ajax.put("isCompanyUser", userType);
|
||||
@@ -968,6 +996,27 @@ public class SysLoginService
|
||||
return getAjax(appUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否7天有效
|
||||
* @param refreshToken
|
||||
* @return
|
||||
*/
|
||||
public boolean checkRefreshTokenValid(String refreshToken) {
|
||||
String key = CacheConstants.LOGIN_SITE_REFRESH_KEY + refreshToken;
|
||||
return redisCache.hasKey(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取新token
|
||||
* @param refreshToken
|
||||
* @return
|
||||
*/
|
||||
public String createNewAccessToken(String refreshToken) {
|
||||
String key = CacheConstants.LOGIN_SITE_REFRESH_KEY + refreshToken;
|
||||
LoginSiteUser user = redisCache.getCacheObject(key);
|
||||
return tokenSiteService.createTokenHourTwo(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取ajax
|
||||
* @param appUser
|
||||
@@ -977,6 +1026,8 @@ public class SysLoginService
|
||||
AjaxResult ajax = AjaxResult.success();
|
||||
String token=loginUserIdApp(appUser);
|
||||
ajax.put(Constants.TOKEN, token);
|
||||
ajax.put(Constants.EXPIRES_IN,Constants.REDIS_TIME_OUT);
|
||||
ajax.put(Constants.REFRESH_TOKEN,loginUserrefreshToken(appUser));
|
||||
ajax.put("isNewUser", false);
|
||||
ajax.put("idCard",appUser.getIdCard());
|
||||
ajax.put("isCompanyUser",appUser.getIsCompanyUser());
|
||||
|
||||
@@ -50,10 +50,12 @@ public class TokenSiteService
|
||||
|
||||
//刷新token时间为7天
|
||||
protected static final int REFRESH_TOKEN_OUTIME =7;
|
||||
|
||||
//1秒
|
||||
protected static final long MILLIS_SECOND = 1000;
|
||||
|
||||
//分钟
|
||||
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
|
||||
//每天
|
||||
protected static final long MILLIS_DAY = 24 * 60 * MILLIS_SECOND;
|
||||
|
||||
private static final Long MILLIS_MINUTE_TEN = 20 * 60 * 1000L;
|
||||
|
||||
@@ -146,7 +148,10 @@ public class TokenSiteService
|
||||
String token = IdUtils.fastUUID();
|
||||
LoginSiteUser.setToken(token);
|
||||
setUserAgent(LoginSiteUser);
|
||||
refreshToken(LoginSiteUser);
|
||||
|
||||
//redis存2个小时
|
||||
String userKey = getTokenKey(token, String.valueOf(LoginSiteUser.getUserId()));
|
||||
redisCache.setCacheObject(userKey, LoginSiteUser, 2, TimeUnit.HOURS);
|
||||
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
claims.put(Constants.APP_LOGIN_USER_KEY, token);
|
||||
@@ -169,7 +174,9 @@ public class TokenSiteService
|
||||
String token = IdUtils.fastUUID();
|
||||
LoginSiteUser.setToken(token);
|
||||
setUserAgent(LoginSiteUser);
|
||||
refreshToken(LoginSiteUser);
|
||||
|
||||
//存入7天
|
||||
redisCache.setCacheObject(CacheConstants.LOGIN_SITE_REFRESH_KEY + token,LoginSiteUser,REFRESH_TOKEN_OUTIME,TimeUnit.DAYS);
|
||||
|
||||
Map<String, Object> claims = new HashMap<>();
|
||||
claims.put(Constants.APP_LOGIN_USER_KEY, token);
|
||||
|
||||
Reference in New Issue
Block a user