spring接口用户超时验证

  目前APP调用java后端接口的开发屡见不鲜。然而Http协议是短连接,APP和java后端不可能在一个容器中运行,所以就造成了会话无法记录。

  通过服务端生成token,服务端把token放入容器中,APP访问接口传入token到服务端验证是否过期,如果过期则用户超时,反之顺利调用。

  案例

  登录通过后调用此代码,把token返回给APP

1         String token = UUID.randomUUID().toString().replaceAll("-", "");
2         if (resultVOAPP.isSuccess()) {
3             User user = (User) resultVOAPP.getObject();
4             user.setToken(token);
5 cachedClient.add(token, Constant.LOGIN_VAILD, j); 6 }

APP每次调用需要登录的接口传入token,在spring拦截器中验证是否存在token

 1         Boolean mark = false;
 2         String token = pvs[i].substring(pvs[i].indexOf("=") + 1);
 3           if (StringUtil.isEmpty(token)) {
 4               mark = true;
 5           } else {
 6                String userVO = cachedClient.get(token);
 7           if (StringUtil.isEmpty(userVO)) {
 8               mark = true;
 9           }
10         }
11         if (mark) {
12             ResultVOAPP resultVO = new ResultVOAPP(ResultCode.ERROR_NOAUTHORITY);
13             return resultVO;
14         }

 

posted @ 2015-07-14 14:39  big-wolf  阅读(329)  评论(0编辑  收藏  举报