利用GUID/UUID生成token及验证token的正确性

本来有JWT这种生成token验证的强大工具,但有时考虑到项目的实际需求,会利用GUID/UUID来生成token,当然GUID/UUID能生成很多具有唯一性的验证结果,所以这里主要记录下GUID/UUID的使用方法

public String createTKN(String account,String pin,String imei){
         SaveToDb st = new SaveToDb();
         // 创建 GUID 对象
          UUID uuid = UUID.randomUUID();
          // 得到对象产生的ID
          String token = uuid.toString();
          // 转换为大写
          token = token.toUpperCase();
          // 替换 “-”变成空格
          token = token.replaceAll("-", "");
          System.out.println(token);
          //向数据库中保存token及用户信息
          Map<String , Object> params = new HashMap<>();
          params.put("st_sid", token);
          params.put("st_account", account);
          String tableName = "表名";
          //此处用的是mybaits的方法来保存数据到数据库,具体可看http://blog.csdn.net/suresand/article/details/52540684
          st.save(tableName , params);
          //保存后下次就可以通过用户的token在数据库来做个验证
          return "token";
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
/**
     * 验证用户的token值是否正确
     * @param account
     * @param tokenValue
     * @return 正确--1,错误--0
     */
    public  String checkTKN(String account, String tokenValue){
          SaveToDb st = new SaveToDb();
          Map<String, Object> params=new HashMap<>();
          //在数据库中查询该用户的token是否存在
          params.put("st_sid", tokenValue);
          String tableName = "T_HY_LOGINTKN_I";
          //用的是一个list集合来接受map集合,所以后面需要转换出来
          List rs = new ArrayList<>();
          //同样用的mybaits的查询方法
          rs = st.select(tableName , params);
          Map<String, Object> map=new HashMap<>();
          map = (Map<String, Object>) rs.get(0);
          //检查该token是否属于该用户
          if(account.equals( map.get("ST_ACCOUNT").toString())){
              return "1";
          }else{
              return "0";
          }
    }

猜你喜欢

转载自blog.csdn.net/qq_31307253/article/details/80596968