| | |
| | | import com.moon.server.helper.WebHelper; |
| | | import com.moon.server.mapper.sys.TokenMapper; |
| | | import com.moon.server.service.all.RedisService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.Date; |
| | |
| | | */ |
| | | @Service |
| | | public class TokenService implements TokenMapper { |
| | | @Autowired |
| | | @Resource |
| | | TokenMapper tokenMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | UserService usersService; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | LoginService loginService; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | RedisService redisService; |
| | | |
| | | @Override |
| | |
| | | return false; |
| | | } |
| | | |
| | | // redis |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | if (redisService.hasKey(tokenKey)) { |
| | | return true; |
| | | } |
| | | TokenEntity te = getEntityByToken(token); |
| | | |
| | | // db |
| | | TokenEntity te = selectOneByToken(token); |
| | | if (null != te) { |
| | | redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | return null != te; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public Boolean logout(String token, HttpServletRequest req, HttpServletResponse res) { |
| | | TokenEntity te = getEntityByToken(token); |
| | | if (te == null) { |
| | | if (null == te) { |
| | | return false; |
| | | } |
| | | |
| | |
| | | * 根据令牌获取实体 |
| | | */ |
| | | public TokenEntity getEntityByToken(String token) { |
| | | if (StringHelper.isNull(token)) { |
| | | return null; |
| | | } |
| | | |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | |
| | | // redis |
| | |
| | | // db |
| | | TokenEntity te = selectOneByToken(token); |
| | | if (null != te) { |
| | | redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); |
| | | long min = StringHelper.getMinuteDifference(te.getExpire()); |
| | | if (min > 0) { |
| | | redisService.put(tokenKey, te, min, TimeUnit.MINUTES); |
| | | } |
| | | } |
| | | |
| | | return te; |
| | |
| | | |
| | | // db |
| | | UserEntity ue = usersService.selectByToken(token); |
| | | // if (null != ue) { |
| | | // getEntityByToken(token); |
| | | // } |
| | | if (null != ue) { |
| | | getEntityByToken(token); |
| | | } |
| | | |
| | | return ue; |
| | | } |