token和deviceId

我们在做后台传参数的时候经常遇到下面的几个参数不好传的问题

String accessToken, Integer appId, String deviceId ,    timestamp


1 如何传值appiD和token


token和deviceId_第1张图片


找到相应acountId即为 userId

Integer userId = tokenService.getUserIdByAccessToken(accessToken, appId);


2 如何找到加密后的deviceId

首先找到秘钥


token和deviceId_第2张图片

去数据库tb_app_auth里面找到


该appId对应的秘钥

比如10100所对应的aac1b1ea435a40ceb2a6bbcf42bbdcfe



然后执行AESCryptoSecurity加密类


String result=AESCryptoSecurity.encrypt("1009299", "aac1b1ea435a40ceb2a6bbcf42bbdcfe");
System.out.println(result);


main执行后得到

6265C656936DF2F02CF95E04D22F100F


3 timestamp不需要写 这个是在拦截器里面用到  app必须传


至此下面的方法即可执行



public Object getIslink(String accessToken, Integer appId, String deviceId){

//得到UserId

Integer userId = tokenService.getUserIdByAccessToken(accessToken, appId);
//根据appId获得秘钥
        String secretKey = authService.getAppSecret(appId);

//根据加密后的deviceId和秘钥进行解密  
        deviceId = AESCryptoSecurity.decrypt(deviceId, secretKey);

}


你可能感兴趣的:(token和deviceId)