| | |
| | | /*insert into lf.sys_token (token,ip) values (new_guid(),'192.168.20.106'); |
| | | insert into lf.sys_token (token,ip,expire,create_time) values (new_guid(),'192.168.20.107',now()::timestamp + '1 year 4 hour',now()::timestamp + '1 year');*/ |
| | | |
| | | select * from lf.sys_token where token='91cf74dc-1d03-4937-983f-88810589b112' and expire > now() limit 1; |
| | | select * from lf.sys_user where id=(select create_user from lf.sys_token where token='91cf74dc-1d03-4937-983f-88810589b112' and expire > now() limit 1); |
| | | |
| | | select * from lf.sys_token; |
| | | select * from lf.sys_token_2022; |
| | | select * from lf.sys_token_2023; |
| | |
| | | * @return |
| | | */ |
| | | @GetMapping(value = "/logout") |
| | | public ResponseMsg<Object> logout(HttpServletRequest req, HttpServletResponse res) { |
| | | public ResponseMsg<Boolean> logout(HttpServletRequest req, HttpServletResponse res) { |
| | | try { |
| | | String token = WebHelper.getToken(req); |
| | | if (StringHelper.isEmpty(token)) { |
| | | return fail("没有检测到令牌", null); |
| | | return fail("没有检测到令牌", false); |
| | | } |
| | | |
| | | //... |
| | |
| | | |
| | | return success(flag ? "用户已登录" : "用户未登录", flag); |
| | | } catch (Exception ex) { |
| | | return fail(ex.getMessage(), null); |
| | | return fail(ex.getMessage(), false); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 检查令牌 |
| | | * |
| | | * @param req |
| | | * @param res |
| | | * @return |
| | | */ |
| | | @GetMapping(value = "/check") |
| | | public ResponseMsg<Object> check(HttpServletRequest req, HttpServletResponse res) { |
| | | try { |
| | | String token = WebHelper.getToken(req); |
| | | if (StringHelper.isEmpty(token)) { |
| | | return fail("没有检测到令牌", null); |
| | | } |
| | | |
| | | //... |
| | | Boolean flag = tokenService.isLogin(req, res); |
| | | |
| | | return success(flag ? "用户已登录" : "用户未登录", flag); |
| | | } catch (Exception ex) { |
| | | return fail(ex.getMessage(), null); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 是否登录 |
| | | * 是/否登录 |
| | | * |
| | | * @return ResponseMsg<String> |
| | | */ |
| | |
| | | return fail(ex.getMessage(), false); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取当前用户 |
| | | * |
| | | * @param req |
| | | * @param res |
| | | * @return |
| | | */ |
| | | @GetMapping("/getCurrentUser") |
| | | public ResponseMsg<UsersEntity> getCurrentUser(HttpServletRequest req, HttpServletResponse res) { |
| | | try { |
| | | UsersEntity ue = tokenService.getCurrentUser(req); |
| | | if (ue == null) { |
| | | return fail("没有找到", null); |
| | | } |
| | | |
| | | return success(ue); |
| | | } catch (Exception ex) { |
| | | return fail(ex.getMessage(), null); |
| | | } |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 根据表名分页查询 |
| | | * |
| | | * @param token 表名 |
| | | * @param token 表名 |
| | | * @param limit 记录表 |
| | | * @param offset 偏移量 |
| | | * @return 列表 |
| | |
| | | |
| | | /** |
| | | * 添加数据 |
| | | * |
| | | * @param tokenEntity |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 批量添加 |
| | | * |
| | | * @param tokenEntity |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 修改数据 |
| | | * |
| | | * @param tokenEntity |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 查询单条数据 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | public TokenEntity selectToken(int id); |
| | | |
| | | /** |
| | | * 根据token值查询一条记录 |
| | | * @param token |
| | | * @return |
| | | */ |
| | | public TokenEntity selectOneByToken(String token); |
| | | |
| | | /** |
| | | * 查询全部数据 |
| | | * |
| | | * @return |
| | | */ |
| | | public List<TokenEntity> selectTokenAll(); |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | public List<UsersEntity> selectByPage(String uname, Integer limit, Integer offset); |
| | | |
| | | /** |
| | | * 根据token有效期查询 |
| | | * |
| | | * @param token |
| | | * @return |
| | | */ |
| | | public UsersEntity selectByToken(String token); |
| | | |
| | | /** |
| | | * 添加数据 |
| | | * |
| | | * @param usersEntity |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据uid查询 |
| | | * |
| | | * @param uid |
| | | * @return |
| | | */ |
| | |
| | | * @return |
| | | */ |
| | | public List<UsersEntity> selectUserAll(); |
| | | |
| | | } |
| | | } |
| | |
| | | @Autowired |
| | | TokenMapper tokenMapper; |
| | | |
| | | @Autowired |
| | | UsersService usersService; |
| | | |
| | | @Override |
| | | public Integer selectCount(String token) { |
| | | return tokenMapper.selectCount(token); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public TokenEntity selectOneByToken(String token) { |
| | | return tokenMapper.selectOneByToken(token); |
| | | } |
| | | |
| | | @Override |
| | | public List<TokenEntity> selectTokenAll() { |
| | | return tokenMapper.selectTokenAll(); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 是否登录 |
| | | * 是/否登录 |
| | | * |
| | | * @param req |
| | | * @param res |
| | |
| | | } |
| | | |
| | | // redis |
| | | if (redisService.hasKey(RedisCacheKey.signTokenKey(token))) { |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | if (redisService.hasKey(tokenKey)) { |
| | | return true; |
| | | } |
| | | |
| | | // db |
| | | TokenEntity te = selectOneByToken(token); |
| | | if (te != null) { |
| | | redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); |
| | | return true; |
| | | } |
| | | |
| | |
| | | return null; |
| | | } |
| | | |
| | | String key = RedisCacheKey.signTokenKey(token); |
| | | Object obj = redisService.get(key); |
| | | String tokenKey = RedisCacheKey.signTokenKey(token); |
| | | |
| | | // redis |
| | | Object obj = redisService.get(tokenKey); |
| | | if (obj != null && obj instanceof TokenEntity) { |
| | | return (TokenEntity) obj; |
| | | } |
| | | |
| | | return null; |
| | | // db |
| | | TokenEntity te = selectOneByToken(token); |
| | | if (te != null) { |
| | | redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); |
| | | } |
| | | |
| | | return te; |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | /** |
| | | * 获取当前用户 |
| | | * |
| | | * @param req |
| | | * @return |
| | | */ |
| | |
| | | } |
| | | |
| | | String userKey = RedisCacheKey.signUserKey(token); |
| | | |
| | | // redis |
| | | Object obj = redisService.get(userKey); |
| | | if (obj != null && obj instanceof UsersEntity) { |
| | | return (UsersEntity) obj; |
| | | } |
| | | |
| | | return null; |
| | | // db |
| | | UsersEntity ue = usersService.selectByToken(token); |
| | | if (ue != null) { |
| | | TokenEntity te = getEntityByToken(token); |
| | | if (te != null) { |
| | | redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES); |
| | | } |
| | | } |
| | | |
| | | return ue; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public UsersEntity selectByToken(String token) { |
| | | return usersMapper.selectByToken(token); |
| | | } |
| | | |
| | | @Override |
| | | public Integer insertUser(UsersEntity usersEntity) { |
| | | return usersMapper.insertUser(usersEntity); |
| | | } |
| | |
| | | select * from lf.sys_token where id = #{id} |
| | | </select> |
| | | |
| | | <select id="selectOneByToken" resultType="com.lf.server.entity.data.TokenEntity"> |
| | | select * from lf.sys_token where token = #{token} and expire > now() limit 1 |
| | | </select> |
| | | |
| | | <insert id="insertToken" parameterType="com.lf.server.entity.data.TokenEntity"> |
| | | <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> |
| | | select currval('lf.sys_token_id_seq'::regclass) as id |
| | |
| | | select * from lf.sys_user where uid = #{uid} |
| | | </select> |
| | | |
| | | <select id="selectByToken" resultType="com.lf.server.entity.data.UsersEntity"> |
| | | select * from lf.sys_user where id = ( |
| | | select create_user from lf.sys_token where token=#{token} and expire > now() limit 1) |
| | | </select> |
| | | |
| | | <insert id="insertUser" parameterType="com.lf.server.entity.data.UsersEntity"> |
| | | insert into lf.sys_user |
| | | (depid,uid,uname,pwd,salt,sex,native,contact,job,email,addr,edu,idcard,status,create_user,create_time,bak) |