diff --git a/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java b/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java index d8de835..4232f61 100644 --- a/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java +++ b/bonus-auth/src/main/java/com/bonus/auth/controller/TokenController.java @@ -158,7 +158,11 @@ public class TokenController { LoginUser login = strategy.login(username, password); logService.saveLogin(username, "登录", "登录成功", null, "成功"); - return R.ok(tokenService.createToken(login)); + if (LoginType.KITCHEN_PHONE_PASSWORD.equals(form.getLoginType())) { + return R.ok(tokenService.createKitchenStaffToken(login)); + } else { + return R.ok(tokenService.createToken(login)); + } } diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/CacheConstants.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/CacheConstants.java index 65d39eb..7510918 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/CacheConstants.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/constant/CacheConstants.java @@ -32,6 +32,8 @@ public class CacheConstants { * 权限缓存前缀 */ public static final String LOGIN_USER_KEY = "login_users:"; + + public static final String LOGIN_STAFF_KEY = "login_staffs:"; /** * 权限缓存前缀 */ diff --git a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/service/TokenService.java b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/service/TokenService.java index c52afe2..2ae2e32 100644 --- a/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/service/TokenService.java +++ b/bonus-common/bonus-common-security/src/main/java/com/bonus/common/security/service/TokenService.java @@ -58,6 +58,8 @@ public class TokenService { private final static String LOGIN_USER_KEY = CacheConstants.LOGIN_USER_KEY; + private final static String LOGIN_STAFF_KEY = CacheConstants.LOGIN_STAFF_KEY; + private final static Long MILLIS_MINUTE_TEN = CacheConstants.REFRESH_TIME * MILLIS_MINUTE; /** @@ -94,6 +96,34 @@ public class TokenService { return rspMap; } + public Map createKitchenStaffToken(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()); + refreshToken(loginUser); + // Jwt存储信息 + Map claimsMap = new HashMap(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 rspMap = new HashMap(16); + rspMap.put("access_token", accessToken); + rspMap.put("expires_in", EXPIRETIME); + rspMap.put("isLogin", isLogin(String.valueOf(userId))); + rspMap.put("deviceTypes", loginUser.getPermissions()); + long tokenTime = getTokenTime(); + //对token进行存储 + redisService.setCacheObject(LOGIN_STAFF_KEY + userId, token, tokenTime, TimeUnit.MINUTES); + return rspMap; + } + public boolean isLogin(String userId) { String existingTokenKey = redisService.getCacheObject(LOGIN_USER_KEY + userId); return existingTokenKey != null;