使用JWT身份令牌请求其他接口

应用场景

如果您的SQLRestful实现需要通过应用网关调用其他微服务接口时,必然需要使用JWT规范的 身份令牌来完成调用。

准备JWT应用身份资料

通过应用网关调用其他微服务接口约定,生成JWT请求令牌必须遵循JWT RS256算法约定,需要准备证明应用身份的资料:

  • RSA私钥:对应公钥在已在网关端登记注册
  • JWT安全令牌:协商密钥,由网关随机生成

JWT应用身份运行容器

准备JWT应用身份资料后,我们需要把RSA私钥文件加载到镜像的文件系统中,然后在运行命令行中加入jwt-keyfilejwt-secretjwt-expires参数,如下示例命令:

docker run -ti --rm \
  -v /path/of/app.pem:/sqlrestful/app.pem:ro \
  snz1/sqlrestful \
  -jwt-keyfile "/sqlrestful/app.pem" \
  -jwt-secret "***********" \
  -jwt-expires=3600 \
  ...

在文件中配置JWT应用身份

_meta {

  //...

  jwt {
    //RSA私钥(PEM格式)
    rsa = <<PEM
    //PEM私钥
    PEM

    //协商密钥
    secret = "*****"

    //请求令牌超时时间(秒)
    expires = 1800
  }

  //...

}

使用JWT请求令牌调用其他接口

通过上述配置后在JavaScript脚本中我们便可以使用内置的call_api函数携带令牌请求其他微服务接口:


(function(){
  var ratdata = call_api("http://appgateway.domain/paht/of/api", {
    method: "GET",
    headers: {
      ...
    },
    body: {
      ...
    }
  })
})()

内置的call_api函数根据JWT应用身份资料自动生成JWT请求令牌请求指定的接口。

直接获取JWT请求令牌

(function(){
  var jwt_token =  jwt_token()
})()

results matching ""

    No results matching ""

    results matching ""

      No results matching ""