From c15739adf58aa87002516f151d6314b8caecbb29 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 30 九月 2022 12:39:47 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/data/TokenService.java | 76 ++++++++++++++++++++++++++++++++------ 1 files changed, 64 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..66436ca 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,48 @@ } /** + * 鐧诲嚭 + * + * @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(), req); + le.setType(3); + + rows = loginService.insertLogin(le); + + return rows > 0; + } + + /** * 鏍规嵁浠ょ墝鑾峰彇瀹炰綋 * * @param token -- Gitblit v1.9.3