From ef1f37541b768829ba9b7c8fe771f0633f8a488c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 30 九月 2022 09:45:35 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/data/TokenService.java | 78 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/TokenService.java b/src/main/java/com/lf/server/service/data/TokenService.java index 1007193..2800557 100644 --- a/src/main/java/com/lf/server/service/data/TokenService.java +++ b/src/main/java/com/lf/server/service/data/TokenService.java @@ -1,7 +1,7 @@ package com.lf.server.service.data; -import com.lf.server.entity.data.LoginEntity; import com.lf.server.entity.data.TokenEntity; +import com.lf.server.entity.data.UsersEntity; import com.lf.server.entity.sys.RedisCacheKey; import com.lf.server.helper.StringHelper; import com.lf.server.helper.WebHelper; @@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.concurrent.TimeUnit; /** * 浠ょ墝琛� @@ -73,6 +74,13 @@ return tokenMapper.selectTokenAll(); } + /** + * 鑾峰彇鏂扮殑浠ょ墝瀹炰綋绫� + * + * @param userid + * @param req + * @return + */ public TokenEntity getNewToken(int userid, HttpServletRequest req) { int duration = 240; @@ -88,6 +96,13 @@ return te; } + /** + * 鏄惁鐧诲綍 + * + * @param req + * @param res + * @return + */ public Boolean isLogin(HttpServletRequest req, HttpServletResponse res) { String token = WebHelper.getToken(req); if (StringHelper.isNull(token)) { @@ -95,10 +110,69 @@ } // redis - if (redisService.hasKey(RedisCacheKey.ssoKey(token))) { + if (redisService.hasKey(RedisCacheKey.signTokenKey(token))) { return true; } return false; } + + /** + * 鏍规嵁浠ょ墝鑾峰彇瀹炰綋 + * + * @param token + * @return + */ + public TokenEntity getEntityByToken(String token) { + if (StringHelper.isNull(token)) { + return null; + } + + String key = RedisCacheKey.signTokenKey(token); + Object obj = redisService.get(key); + if (obj != null && obj instanceof TokenEntity) { + return (TokenEntity) obj; + } + + return null; + } + + /** + * 淇濆瓨token + * + * @param te + * @param req + * @param res + */ + public void saveToken(UsersEntity ue, TokenEntity te, HttpServletRequest req, HttpServletResponse res) { + // 淇濆瓨鑷矯ookie + WebHelper.saveToken2Cookie(te.getToken(), req, res); + + // 浠ょ墝淇濆瓨鑷砇edis + String tokenKey = RedisCacheKey.signTokenKey(te.getToken()); + redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); + + String userKey = RedisCacheKey.signUserKey(te.getToken()); + redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES); + } + + /** + * 鑾峰彇褰撳墠鐢ㄦ埛 + * @param req + * @return + */ + public UsersEntity getCurrentUser(HttpServletRequest req) { + String token = WebHelper.getToken(req); + if (StringHelper.isEmpty(token)) { + return null; + } + + String userKey = RedisCacheKey.signUserKey(token); + Object obj = redisService.get(userKey); + if (obj != null && obj instanceof UsersEntity) { + return (UsersEntity) obj; + } + + return null; + } } -- Gitblit v1.9.3