From 9d25cb0ec78260a283b06fd96bc7b156f32cf9df Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期五, 30 九月 2022 14:28:52 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/data/TokenService.java | 74 +++++++++++++++++++++++++++++++------ 1 files changed, 62 insertions(+), 12 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 a186211..baa6683 100644 --- a/src/main/java/com/lf/server/service/data/TokenService.java +++ b/src/main/java/com/lf/server/service/data/TokenService.java @@ -1,5 +1,7 @@ package com.lf.server.service.data; +import com.lf.server.entity.all.StaticData; +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; @@ -32,6 +34,9 @@ @Autowired UsersService usersService; + @Autowired + LoginService loginService; + @Override public Integer selectCount(String token) { return tokenMapper.selectCount(token); @@ -40,6 +45,21 @@ @Override public List<TokenEntity> selectByPage(String token, Integer limit, Integer offset) { return tokenMapper.selectByPage(token, limit, offset); + } + + @Override + public TokenEntity selectToken(int id) { + return tokenMapper.selectToken(id); + } + + @Override + public TokenEntity selectOneByToken(String token) { + return tokenMapper.selectOneByToken(token); + } + + @Override + public List<TokenEntity> selectTokenAll() { + return tokenMapper.selectTokenAll(); } @Override @@ -68,18 +88,8 @@ } @Override - public TokenEntity selectToken(int id) { - return tokenMapper.selectToken(id); - } - - @Override - public TokenEntity selectOneByToken(String token) { - return tokenMapper.selectOneByToken(token); - } - - @Override - public List<TokenEntity> selectTokenAll() { - return tokenMapper.selectTokenAll(); + public Integer updateTokenExpire(TokenEntity tokenEntity) { + return tokenMapper.updateTokenExpire(tokenEntity); } /** @@ -134,6 +144,46 @@ } /** + * 鐧诲嚭 + * + * @param token + * @param req + * @return + */ + public Boolean logout(String token, HttpServletRequest req) { + TokenEntity te = getEntityByToken(token); + if (te == null) { + return false; + } + + // 娓呴櫎Cookie + WebHelper.deleteCookie(StaticData.TOKEN_COOKIE_KEY, req); + + // 娓呴櫎缂撳瓨 + String tokenKey = RedisCacheKey.signTokenKey(token); + redisService.delete(tokenKey); + + // 鑾峰彇褰撳墠鐢ㄦ埛 + UsersEntity ue = getCurrentUser(req); + if (te == null) { + return false; + } + + // db锛岃缃护鐗岃繃鏈� + te.setUpdateUser(ue.getId()); + Integer rows = updateTokenExpire(te); + if (rows == 0) { + return false; + } + + // 鍐欐棩蹇� + LoginEntity le = loginService.getNewLogin(ue.getId(), 3, req); + rows = loginService.insertLogin(le); + + return rows > 0; + } + + /** * 鏍规嵁浠ょ墝鑾峰彇瀹炰綋 * * @param token -- Gitblit v1.9.3