Browse Source

feature-1.1:鉴权校验

feature-1.1
Penny 3 years ago
parent
commit
84584a7006
  1. 4
      bnyer-auth/src/main/java/com/bnyer/auth/controller/CreatorController.java
  2. 4
      bnyer-auth/src/main/java/com/bnyer/auth/controller/FhUserController.java
  3. 4
      bnyer-auth/src/main/java/com/bnyer/auth/controller/TiktokUserController.java
  4. 8
      bnyer-auth/src/main/java/com/bnyer/auth/controller/WxUserController.java
  5. 66
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthLogic.java
  6. 45
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthUtil.java
  7. 64
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthLogic.java
  8. 45
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthUtil.java
  9. 64
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthLogic.java
  10. 45
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthUtil.java
  11. 66
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthLogic.java
  12. 45
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthUtil.java
  13. 34
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java
  14. 41
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java
  15. 41
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java
  16. 44
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java
  17. 48
      bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java

4
bnyer-auth/src/main/java/com/bnyer/auth/controller/CreatorController.java

@ -3,6 +3,7 @@ package com.bnyer.auth.controller;
import com.bnyer.auth.service.CreatorLoginService; import com.bnyer.auth.service.CreatorLoginService;
import com.bnyer.common.core.domain.R; import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.CreatorLoginDto; import com.bnyer.common.core.dto.CreatorLoginDto;
import com.bnyer.common.security.auth.CreatorAuthUtil;
import com.bnyer.common.security.service.CreatorTokenService; import com.bnyer.common.security.service.CreatorTokenService;
import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.img.api.model.LoginCreator; import com.bnyer.img.api.model.LoginCreator;
@ -45,7 +46,8 @@ public class CreatorController
public R<?> logout(HttpServletRequest request) public R<?> logout(HttpServletRequest request)
{ {
String token = SecurityUtils.getCreatorToken(request); String token = SecurityUtils.getCreatorToken(request);
creatorTokenService.delLoginCreator(token); //creatorTokenService.delLoginCreator(token);
CreatorAuthUtil.logoutByToken(token);
return R.ok(); return R.ok();
} }
} }

4
bnyer-auth/src/main/java/com/bnyer/auth/controller/FhUserController.java

@ -3,6 +3,7 @@ package com.bnyer.auth.controller;
import com.bnyer.auth.service.FhUserLoginService; import com.bnyer.auth.service.FhUserLoginService;
import com.bnyer.common.core.domain.R; import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.FhLoginDto; import com.bnyer.common.core.dto.FhLoginDto;
import com.bnyer.common.security.auth.FhAuthUtil;
import com.bnyer.common.security.service.FhUserTokenService; import com.bnyer.common.security.service.FhUserTokenService;
import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.img.api.model.LoginFhUser; import com.bnyer.img.api.model.LoginFhUser;
@ -43,7 +44,8 @@ public class FhUserController
{ {
String token = SecurityUtils.getFhToken(request); String token = SecurityUtils.getFhToken(request);
//删除快手用户缓存 //删除快手用户缓存
fUserTokenService.delLoginFhUser(token); //fUserTokenService.delLoginFhUser(token);
FhAuthUtil.logoutByToken(token);
return R.ok(); return R.ok();
} }
} }

4
bnyer-auth/src/main/java/com/bnyer/auth/controller/TiktokUserController.java

@ -3,6 +3,7 @@ package com.bnyer.auth.controller;
import com.bnyer.auth.service.TiktokUserLoginService; import com.bnyer.auth.service.TiktokUserLoginService;
import com.bnyer.common.core.domain.R; import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.TiktokLoginDto; import com.bnyer.common.core.dto.TiktokLoginDto;
import com.bnyer.common.security.auth.TiktokAuthUtil;
import com.bnyer.common.security.service.TiktokUserTokenService; import com.bnyer.common.security.service.TiktokUserTokenService;
import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.img.api.model.LoginTiktokUser; import com.bnyer.img.api.model.LoginTiktokUser;
@ -43,7 +44,8 @@ public class TiktokUserController
{ {
String token = SecurityUtils.getTiktokToken(request); String token = SecurityUtils.getTiktokToken(request);
//删除抖音用户缓存 //删除抖音用户缓存
tiktokUserTokenService.delLoginFhUser(token); //tiktokUserTokenService.delLoginTiktokUser(token);
TiktokAuthUtil.logoutByToken(token);
return R.ok(); return R.ok();
} }
} }

8
bnyer-auth/src/main/java/com/bnyer/auth/controller/WxUserController.java

@ -3,6 +3,7 @@ package com.bnyer.auth.controller;
import com.bnyer.auth.service.WxUserLoginService; import com.bnyer.auth.service.WxUserLoginService;
import com.bnyer.common.core.domain.R; import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.WxLoginDto; import com.bnyer.common.core.dto.WxLoginDto;
import com.bnyer.common.security.auth.WechatAuthUtil;
import com.bnyer.common.security.service.WxUserTokenService; import com.bnyer.common.security.service.WxUserTokenService;
import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.img.api.model.LoginWechatUser; import com.bnyer.img.api.model.LoginWechatUser;
@ -28,13 +29,13 @@ public class WxUserController
private WxUserLoginService wxUserLoginService; private WxUserLoginService wxUserLoginService;
@Autowired @Autowired
private WxUserTokenService WxUserTokenService; private WxUserTokenService wxUserTokenService;
@ApiOperation(value="微信小程序用户登录") @ApiOperation(value="微信小程序用户登录")
@PostMapping(value = "/wxUserLogin") @PostMapping(value = "/wxUserLogin")
public R<?> loginWx(@Validated @RequestBody @ApiParam("登录对象") WxLoginDto dto){ public R<?> loginWx(@Validated @RequestBody @ApiParam("登录对象") WxLoginDto dto){
LoginWechatUser loginWxUser = wxUserLoginService.login(dto); LoginWechatUser loginWxUser = wxUserLoginService.login(dto);
return R.ok(WxUserTokenService.createToken(loginWxUser)); return R.ok(wxUserTokenService.createToken(loginWxUser));
} }
@PostMapping("/wxUserLogout") @PostMapping("/wxUserLogout")
@ -43,7 +44,8 @@ public class WxUserController
{ {
String token = SecurityUtils.getWechatToken(request); String token = SecurityUtils.getWechatToken(request);
//删除微信用户缓存 //删除微信用户缓存
WxUserTokenService.delLoginFhUser(token); //WxUserTokenService.delLoginFhUser(token);
WechatAuthUtil.logoutByToken(token);
return R.ok(); return R.ok();
} }
} }

66
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthLogic.java

@ -0,0 +1,66 @@
package com.bnyer.common.security.auth;
import com.bnyer.common.core.utils.SpringUtils;
import com.bnyer.common.security.service.CreatorTokenService;
import com.bnyer.common.security.service.TiktokUserTokenService;
import com.bnyer.img.api.model.LoginCreator;
import com.bnyer.img.api.model.LoginTiktokUser;
/**
* 艺术家Token 权限验证逻辑实现类
*
* @author penny
*/
public class CreatorAuthLogic
{
public CreatorTokenService tokenService = SpringUtils.getBean(CreatorTokenService.class);
/**
* 会话注销根据指定Token
*/
public void logoutByToken(String token)
{
tokenService.delLoginCreator(token);
}
/**
* 获取当前用户缓存信息, 如果未登录则抛出异常
*
* @param token 前端传递的认证信息
* @return 用户缓存信息
*/
public LoginCreator getLoginUser(String token)
{
return tokenService.getLoginUser(token);
}
/**
* 验证当前用户有效期, 如果相差不足120分钟自动刷新缓存
*
* @param loginCreator 当前用户信息
*/
public void verifyLoginUserExpire(LoginCreator loginCreator)
{
tokenService.verifyToken(loginCreator);
}
}

45
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/CreatorAuthUtil.java

@ -0,0 +1,45 @@
package com.bnyer.common.security.auth;
import com.bnyer.img.api.model.LoginCreator;
/**
* 抖音Token 权限验证工具类
*
* @author penny
*/
public class CreatorAuthUtil
{
/**
* 底层的 AuthLogic 对象
*/
public static CreatorAuthLogic authLogic = new CreatorAuthLogic();
/**
* 会话注销根据指定Token
*
* @param token 指定token
*/
public static void logoutByToken(String token)
{
authLogic.logoutByToken(token);
}
/**
* 获取当前登录用户信息
*/
public static LoginCreator getLoginUser(String token)
{
return authLogic.getLoginUser(token);
}
/**
* 验证当前用户有效期
*/
public static void verifyLoginUserExpire(LoginCreator loginCreator)
{
authLogic.verifyLoginUserExpire(loginCreator);
}
}

64
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthLogic.java

@ -0,0 +1,64 @@
package com.bnyer.common.security.auth;
import com.bnyer.common.core.utils.SpringUtils;
import com.bnyer.common.security.service.FhUserTokenService;
import com.bnyer.img.api.model.LoginFhUser;
/**
* 快手Token 权限验证逻辑实现类
*
* @author penny
*/
public class FhAuthLogic
{
public FhUserTokenService tokenService = SpringUtils.getBean(FhUserTokenService.class);
/**
* 会话注销根据指定Token
*/
public void logoutByToken(String token)
{
tokenService.delLoginFhUser(token);
}
/**
* 获取当前用户缓存信息, 如果未登录则抛出异常
*
* @param token 前端传递的认证信息
* @return 用户缓存信息
*/
public LoginFhUser getLoginUser(String token)
{
return tokenService.getLoginUser(token);
}
/**
* 验证当前用户有效期, 如果相差不足120分钟自动刷新缓存
*
* @param loginFhUser 当前用户信息
*/
public void verifyLoginUserExpire(LoginFhUser loginFhUser)
{
tokenService.verifyToken(loginFhUser);
}
}

45
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/FhAuthUtil.java

@ -0,0 +1,45 @@
package com.bnyer.common.security.auth;
import com.bnyer.img.api.model.LoginFhUser;
/**
* 快手Token 权限验证工具类
*
* @author penny
*/
public class FhAuthUtil
{
/**
* 底层的 AuthLogic 对象
*/
public static FhAuthLogic authLogic = new FhAuthLogic();
/**
* 会话注销根据指定Token
*
* @param token 指定token
*/
public static void logoutByToken(String token)
{
authLogic.logoutByToken(token);
}
/**
* 获取当前登录用户信息
*/
public static LoginFhUser getLoginUser(String token)
{
return authLogic.getLoginUser(token);
}
/**
* 验证当前用户有效期
*/
public static void verifyLoginUserExpire(LoginFhUser loginFhUser)
{
authLogic.verifyLoginUserExpire(loginFhUser);
}
}

64
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthLogic.java

@ -0,0 +1,64 @@
package com.bnyer.common.security.auth;
import com.bnyer.common.core.utils.SpringUtils;
import com.bnyer.common.security.service.TiktokUserTokenService;
import com.bnyer.img.api.model.LoginTiktokUser;
/**
* 抖音Token 权限验证逻辑实现类
*
* @author penny
*/
public class TiktokAuthLogic
{
public TiktokUserTokenService tokenService = SpringUtils.getBean(TiktokUserTokenService.class);
/**
* 会话注销根据指定Token
*/
public void logoutByToken(String token)
{
tokenService.delLoginTiktokUser(token);
}
/**
* 获取当前用户缓存信息, 如果未登录则抛出异常
*
* @param token 前端传递的认证信息
* @return 用户缓存信息
*/
public LoginTiktokUser getLoginUser(String token)
{
return tokenService.getLoginUser(token);
}
/**
* 验证当前用户有效期, 如果相差不足120分钟自动刷新缓存
*
* @param loginTiktokUser 当前用户信息
*/
public void verifyLoginUserExpire(LoginTiktokUser loginTiktokUser)
{
tokenService.verifyToken(loginTiktokUser);
}
}

45
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/TiktokAuthUtil.java

@ -0,0 +1,45 @@
package com.bnyer.common.security.auth;
import com.bnyer.img.api.model.LoginTiktokUser;
/**
* 抖音Token 权限验证工具类
*
* @author penny
*/
public class TiktokAuthUtil
{
/**
* 底层的 AuthLogic 对象
*/
public static TiktokAuthLogic authLogic = new TiktokAuthLogic();
/**
* 会话注销根据指定Token
*
* @param token 指定token
*/
public static void logoutByToken(String token)
{
authLogic.logoutByToken(token);
}
/**
* 获取当前登录用户信息
*/
public static LoginTiktokUser getLoginUser(String token)
{
return authLogic.getLoginUser(token);
}
/**
* 验证当前用户有效期
*/
public static void verifyLoginUserExpire(LoginTiktokUser loginTiktokUser)
{
authLogic.verifyLoginUserExpire(loginTiktokUser);
}
}

66
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthLogic.java

@ -0,0 +1,66 @@
package com.bnyer.common.security.auth;
import com.bnyer.common.core.utils.SpringUtils;
import com.bnyer.common.security.service.TiktokUserTokenService;
import com.bnyer.common.security.service.WxUserTokenService;
import com.bnyer.img.api.model.LoginTiktokUser;
import com.bnyer.img.api.model.LoginWechatUser;
/**
* 微信Token 权限验证逻辑实现类
*
* @author penny
*/
public class WechatAuthLogic
{
public WxUserTokenService tokenService = SpringUtils.getBean(WxUserTokenService.class);
/**
* 会话注销根据指定Token
*/
public void logoutByToken(String token)
{
tokenService.delLoginWechatUser(token);
}
/**
* 获取当前用户缓存信息, 如果未登录则抛出异常
*
* @param token 前端传递的认证信息
* @return 用户缓存信息
*/
public LoginWechatUser getLoginUser(String token)
{
return tokenService.getLoginUser(token);
}
/**
* 验证当前用户有效期, 如果相差不足120分钟自动刷新缓存
*
* @param loginWechatUser 当前用户信息
*/
public void verifyLoginUserExpire(LoginWechatUser loginWechatUser)
{
tokenService.verifyToken(loginWechatUser);
}
}

45
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/auth/WechatAuthUtil.java

@ -0,0 +1,45 @@
package com.bnyer.common.security.auth;
import com.bnyer.img.api.model.LoginWechatUser;
/**
* 微信Token 权限验证工具类
*
* @author penny
*/
public class WechatAuthUtil
{
/**
* 底层的 AuthLogic 对象
*/
public static WechatAuthLogic authLogic = new WechatAuthLogic();
/**
* 会话注销根据指定Token
*
* @param token 指定token
*/
public static void logoutByToken(String token)
{
authLogic.logoutByToken(token);
}
/**
* 获取当前登录用户信息
*/
public static LoginWechatUser getLoginUser(String token)
{
return authLogic.getLoginUser(token);
}
/**
* 验证当前用户有效期
*/
public static void verifyLoginUserExpire(LoginWechatUser loginWechatUser)
{
authLogic.verifyLoginUserExpire(loginWechatUser);
}
}

34
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/interceptor/HeaderInterceptor.java

@ -5,7 +5,12 @@ import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.bnyer.common.core.constant.TokenConstants; import com.bnyer.common.core.constant.TokenConstants;
import com.bnyer.common.security.auth.*;
import com.bnyer.common.security.utils.SecurityUtils; import com.bnyer.common.security.utils.SecurityUtils;
import com.bnyer.img.api.model.LoginCreator;
import com.bnyer.img.api.model.LoginFhUser;
import com.bnyer.img.api.model.LoginTiktokUser;
import com.bnyer.img.api.model.LoginWechatUser;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.method.HandlerMethod; import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.AsyncHandlerInterceptor; import org.springframework.web.servlet.AsyncHandlerInterceptor;
@ -13,7 +18,6 @@ import com.bnyer.common.core.constant.SecurityConstants;
import com.bnyer.common.core.context.SecurityContextHolder; import com.bnyer.common.core.context.SecurityContextHolder;
import com.bnyer.common.core.utils.ServletUtils; import com.bnyer.common.core.utils.ServletUtils;
import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.security.auth.AuthUtil;
import com.bnyer.system.api.model.LoginUser; import com.bnyer.system.api.model.LoginUser;
/** /**
@ -56,6 +60,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getCreatorId())); log.info("SecurityContextHolderUserId,{}", JSON.toJSONString(SecurityContextHolder.getCreatorId()));
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getCreatorKey())); log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getCreatorKey()));
log.info("SecurityContextHolderPhone,{}", JSON.toJSONString(SecurityContextHolder.getCreatorPhone())); log.info("SecurityContextHolderPhone,{}", JSON.toJSONString(SecurityContextHolder.getCreatorPhone()));
LoginCreator loginUser = CreatorAuthUtil.getLoginUser(creatorToken);
if (StringUtils.isNotNull(loginUser))
{
CreatorAuthUtil.verifyLoginUserExpire(loginUser);
SecurityContextHolder.set(SecurityConstants.LOGIN_CREATOR, loginUser);
}
}else if(StringUtils.isNotEmpty(tiktokToken)){ }else if(StringUtils.isNotEmpty(tiktokToken)){
SecurityContextHolder.setTikTokUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USER_ID)); SecurityContextHolder.setTikTokUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USER_ID));
SecurityContextHolder.setTikTokUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USERNAME)); SecurityContextHolder.setTikTokUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_TIKTOK_USERNAME));
@ -65,6 +76,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserName())); log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserName()));
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserKey())); log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getTikTokUserKey()));
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokOpenId())); log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getTikTokOpenId()));
LoginTiktokUser loginUser = TiktokAuthUtil.getLoginUser(tiktokToken);
if (StringUtils.isNotNull(loginUser))
{
TiktokAuthUtil.verifyLoginUserExpire(loginUser);
SecurityContextHolder.set(SecurityConstants.LOGIN_TIKTOK_USER, loginUser);
}
}else if(StringUtils.isNotEmpty(fhToken)){ }else if(StringUtils.isNotEmpty(fhToken)){
SecurityContextHolder.setFhUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USER_ID)); SecurityContextHolder.setFhUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USER_ID));
SecurityContextHolder.setFhUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USERNAME)); SecurityContextHolder.setFhUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_FH_USERNAME));
@ -74,6 +92,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getFhUserName())); log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getFhUserName()));
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getFhUserKey())); log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getFhUserKey()));
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getFhOpenId())); log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getFhOpenId()));
LoginFhUser loginUser = FhAuthUtil.getLoginUser(fhToken);
if (StringUtils.isNotNull(loginUser))
{
FhAuthUtil.verifyLoginUserExpire(loginUser);
SecurityContextHolder.set(SecurityConstants.LOGIN_FH_USER, loginUser);
}
}else if(StringUtils.isNotEmpty(wechatToken)){ }else if(StringUtils.isNotEmpty(wechatToken)){
SecurityContextHolder.setWechatUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USER_ID)); SecurityContextHolder.setWechatUserId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USER_ID));
SecurityContextHolder.setWechatUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USERNAME)); SecurityContextHolder.setWechatUserName(ServletUtils.getHeader(request, SecurityConstants.DETAILS_WECHAT_USERNAME));
@ -83,6 +108,13 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor
log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserName())); log.info("SecurityContextHolderUserName,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserName()));
log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserKey())); log.info("SecurityContextHolderUserKey,{}", JSON.toJSONString(SecurityContextHolder.getWechatUserKey()));
log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getWechatOpenId())); log.info("SecurityContextHolderOpenId,{}", JSON.toJSONString(SecurityContextHolder.getWechatOpenId()));
LoginWechatUser loginUser = WechatAuthUtil.getLoginUser(wechatToken);
if (StringUtils.isNotNull(loginUser))
{
WechatAuthUtil.verifyLoginUserExpire(loginUser);
SecurityContextHolder.set(SecurityConstants.LOGIN_WECHAT_USER, loginUser);
}
} }

41
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/CreatorTokenService.java

@ -36,6 +36,8 @@ public class CreatorTokenService
private final static String ACCESS_TOKEN = RedisKeyConstant.WECHAT_CREATOR_LOGIN_KEY; private final static String ACCESS_TOKEN = RedisKeyConstant.WECHAT_CREATOR_LOGIN_KEY;
private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE;
/** /**
* 创建令牌 * 创建令牌
*/ */
@ -76,6 +78,45 @@ public class CreatorTokenService
} }
} }
/**
* 获取用户身份信息
*
* @return 用户信息
*/
public LoginCreator getLoginUser(String token)
{
LoginCreator user = null;
try
{
if (StringUtils.isNotEmpty(token))
{
//
String phone = JwtUtils.getCreatorPhone(token);
user = redisService.getCacheObject(getTokenKey(phone));
return user;
}
}
catch (Exception e)
{
}
return user;
}
/**
* 验证令牌有效期相差不足120分钟自动刷新缓存
*
* @param loginCreator 艺术家用户
*/
public void verifyToken(LoginCreator loginCreator)
{
long expireTime = loginCreator.getExpireTime();
long currentTime = System.currentTimeMillis();
if (expireTime - currentTime <= MILLIS_MINUTE_TEN)
{
refreshToken(loginCreator);
}
}
/** /**
* 刷新令牌有效期 * 刷新令牌有效期
* *

41
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/FhUserTokenService.java

@ -36,6 +36,8 @@ public class FhUserTokenService
private final static String ACCESS_TOKEN = RedisKeyConstant.FH_USER_LOGIN_KEY; private final static String ACCESS_TOKEN = RedisKeyConstant.FH_USER_LOGIN_KEY;
private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE;
/** /**
* 创建令牌 * 创建令牌
*/ */
@ -79,6 +81,45 @@ public class FhUserTokenService
} }
} }
/**
* 获取用户身份信息
*
* @return 用户信息
*/
public LoginFhUser getLoginUser(String token)
{
LoginFhUser user = null;
try
{
if (StringUtils.isNotEmpty(token))
{
//
String openId = JwtUtils.getFhUserOpenid(token);
user = redisService.getCacheObject(getTokenKey(openId));
return user;
}
}
catch (Exception e)
{
}
return user;
}
/**
* 验证令牌有效期相差不足120分钟自动刷新缓存
*
* @param loginFhUser 快手用户
*/
public void verifyToken(LoginFhUser loginFhUser)
{
long expireTime = loginFhUser.getExpireTime();
long currentTime = System.currentTimeMillis();
if (expireTime - currentTime <= MILLIS_MINUTE_TEN)
{
refreshToken(loginFhUser);
}
}
/** /**
* 刷新令牌有效期 * 刷新令牌有效期
* *

44
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/TiktokUserTokenService.java

@ -10,6 +10,7 @@ import com.bnyer.common.core.utils.ip.IpUtils;
import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.api.model.LoginTiktokUser; import com.bnyer.img.api.model.LoginTiktokUser;
import com.bnyer.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -36,6 +37,8 @@ public class TiktokUserTokenService
private final static String ACCESS_TOKEN = RedisKeyConstant.TIKTOK_USER_LOGIN_KEY; private final static String ACCESS_TOKEN = RedisKeyConstant.TIKTOK_USER_LOGIN_KEY;
private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE;
/** /**
* 创建令牌 * 创建令牌
*/ */
@ -70,7 +73,7 @@ public class TiktokUserTokenService
/** /**
* 删除抖音小程序用户缓存信息 * 删除抖音小程序用户缓存信息
*/ */
public void delLoginFhUser(String token) public void delLoginTiktokUser(String token)
{ {
if (StringUtils.isNotEmpty(token)) if (StringUtils.isNotEmpty(token))
{ {
@ -79,6 +82,45 @@ public class TiktokUserTokenService
} }
} }
/**
* 获取用户身份信息
*
* @return 用户信息
*/
public LoginTiktokUser getLoginUser(String token)
{
LoginTiktokUser user = null;
try
{
if (StringUtils.isNotEmpty(token))
{
//
String openId = JwtUtils.getTiktokUserOpenid(token);
user = redisService.getCacheObject(getTokenKey(openId));
return user;
}
}
catch (Exception e)
{
}
return user;
}
/**
* 验证令牌有效期相差不足120分钟自动刷新缓存
*
* @param loginTiktokUser 抖音用户
*/
public void verifyToken(LoginTiktokUser loginTiktokUser)
{
long expireTime = loginTiktokUser.getExpireTime();
long currentTime = System.currentTimeMillis();
if (expireTime - currentTime <= MILLIS_MINUTE_TEN)
{
refreshToken(loginTiktokUser);
}
}
/** /**
* 刷新令牌有效期 * 刷新令牌有效期
* *

48
bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/service/WxUserTokenService.java

@ -9,7 +9,6 @@ import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.utils.ip.IpUtils; import com.bnyer.common.core.utils.ip.IpUtils;
import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.api.model.LoginFhUser;
import com.bnyer.img.api.model.LoginWechatUser; import com.bnyer.img.api.model.LoginWechatUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -37,6 +36,8 @@ public class WxUserTokenService
private final static String ACCESS_TOKEN = RedisKeyConstant.WECHAT_USER_LOGIN_KEY; private final static String ACCESS_TOKEN = RedisKeyConstant.WECHAT_USER_LOGIN_KEY;
private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE;
/** /**
* 创建令牌 * 创建令牌
*/ */
@ -71,12 +72,51 @@ public class WxUserTokenService
/** /**
* 删除微信小程序用户缓存信息 * 删除微信小程序用户缓存信息
*/ */
public void delLoginFhUser(String token) public void delLoginWechatUser(String token)
{
if (StringUtils.isNotEmpty(token))
{
String openId = JwtUtils.getWechatUserOpenid(token);
redisService.deleteObject(getTokenKey(openId));
}
}
/**
* 获取用户身份信息
*
* @return 用户信息
*/
public LoginWechatUser getLoginUser(String token)
{
LoginWechatUser user = null;
try
{ {
if (StringUtils.isNotEmpty(token)) if (StringUtils.isNotEmpty(token))
{ {
String wxUserKey = JwtUtils.getWechatUserOpenid(token); //
redisService.deleteObject(getTokenKey(wxUserKey)); String openId = JwtUtils.getWechatUserOpenid(token);
user = redisService.getCacheObject(getTokenKey(openId));
return user;
}
}
catch (Exception e)
{
}
return user;
}
/**
* 验证令牌有效期相差不足120分钟自动刷新缓存
*
* @param loginWechatUser 微信用户
*/
public void verifyToken(LoginWechatUser loginWechatUser)
{
long expireTime = loginWechatUser.getExpireTime();
long currentTime = System.currentTimeMillis();
if (expireTime - currentTime <= MILLIS_MINUTE_TEN)
{
refreshToken(loginWechatUser);
} }
} }

Loading…
Cancel
Save