跳到主要内容

api数据集token机制详解

此文仅给开发看

支持版本Version 1.3.1-beta2+

  • 1.集成积木报表,调用api接口如果用到token需要自定义java类实现接口JmReportTokenServiceI,重写方法getToken()
@Component
public class JimuReportTokenService implements JmReportTokenServiceI {

@Override
public String getToken(HttpServletRequest request) {
return TokenUtils.getTokenByRequest(request);
}
//忽略其他代码
  • 2.api请求默认会在header中传入X-Access-Token,其值取之于上述实现类的getToken()方法的返回值。
  • 3.当api数据集的报表预览时,在预览的地址后面拼接上?token=xxxxx, 那么会在该api请求的header中会传入token,其值取之于上述拼接的参数值xxxxx
// 预览访问地址带token:
http://localhost:8080/jeecg-boot/jmreport/view/539299173307518976?token=123456
  • 4.上述2传入token适用场景:header里设置的是X-Access-Token,如jeecg boot;上述3是将请求地址后带的token作为header中的一个参数发送请求,header里设置的是token,2和3可同时设置,互不干扰。若是不满足需求,用户可自定义请求头,需要重写方法customApiHeader,此时2和3皆不生效。
@Component
public class JimuReportTokenService implements JmReportTokenServiceI {

@Override
public HttpHeaders customApiHeader() {
HttpHeaders header = new HttpHeaders();
header.add("custom-header1", "Please set a custom value 1");
header.add("custom-header2", "Please set a custom value 2");
return header;
}
}