管理进化

token怎么获取


在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请、登录系统使用。获得token的话首先会有甲方提供一些数据,然后获得token的入参和出参。接着咱们就可以写代码了。

今天咱们来说说怎么通过代码来获取token。

获得token的话首先会有甲方提供一些数据

类似于这种,token的入参和出参。接着咱们就可以写代码了。

/**

获取token

@return

*/

public String getToken(){

String shortUrl = WEIXIN_SHORT_TOKEN; //这是一个token的入参url 只是我把它放到配置文件了。

logger.info("json_token_short requestUrl:"+ shortUrl);

String jsonTokenShort = null;

try {

jsonTokenShort = httpClientWraper.mockPostJsonNew(shortUrl, null, false);

} catch (Exception e) {

e.printStackTrace();

}

logger.info("获取jsonTokenShort响应:"+jsonTokenShort);

Map<String,Object> mapResultShort = (Map)JSON.parse(jsonTokenShort);

//        if (jsonTokenShort.contains("errcode") && !mapResultShort.get("errcode").toString().equals("0")) {

//            throw new GzhBizRuntimeException(mapResultShort.get("errcode").toString(),mapResultShort.get("errmsg").toString());

//        }

Object tokenShortA = mapResultShort.get("value");

if(tokenShortA == null){

throw new GzhBizRuntimeException(RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespCode(),

RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespMsg());

}

String tokenShortB = mapResultShort.get("value").toString();

String longUrl = WEIXIN_LONG_TOKEN.concat("dataface/wechatKey?token=") + tokenShortB ;

logger.info("json_token_long requestUrl:"+ longUrl);

//        String longUrl = String.format(url_template,tokenShort);

//        logger.info("json_token_long requestUrl:"+ longUrl);

String jsonTokenLong = null;

try {

jsonTokenLong = httpClientWraper.mockPostJsonNew(longUrl, null, false);

} catch (Exception e) {

e.printStackTrace();

}

logger.info("获取jsonTokenShort响应:"+ jsonTokenLong);

Map<String,Object> mapResultLong = (Map)JSON.parse(jsonTokenLong);

//        if (jsonTokenShort.contains("errcode") && !mapResultLong.get("errcode").toString().equals("0")) {

//            throw new GzhBizRuntimeException(mapResultLong.get("errcode").toString(),mapResultLong.get("errmsg").toString());

//        }

Object tokenLongA = mapResultLong.get("value");

if(tokenLongA == null){

throw new GzhBizRuntimeException(RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespCode(),

RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespMsg());

}

String tokenLongB = mapResultLong.get("value").toString();

Map<String,Object> mapResult = (Map)JSON.parse(tokenLongB);

String token = mapResult.get("key").toString();

tokenMap.put("token", token);

logger.info("token>>>>>>>>>>>>>>>>>>>>>>>" + token);

return token;

}

这个方法就可以获取到token了。

这个是获取了两次,第一次获取短的token,然后第二次获取长的token并使用拼接把短的token也拼接上去。最后才获取到最后的token。获取两次是为了安全。


最后,推荐我们的管理工具给大家

智齿客服