在Swagger中接收并发送授权令牌

时间:2018-03-15 16:26:19

标签: php swagger swagger-ui

我正在使用Swagger创建一个文档页面,我想自动添加从正确的/login调用中收到的访问令牌。我尝试使用

responseInterceptor: (responseObj) => {
  if(responseObj.obj.access_token !== 'undefined'){
    token = responseObj.obj.access_token;
  }
  return responseObj
}

接收和存储令牌,

requestInterceptor: (requestObj) => {
  if(token !== 'undefined') {
    requestObj.headers.Authorization = `Bearer ${token}`;
  }
  return requestObj
}

通过标头将其传递给后续请求,但这仅适用于一次调用,之后令牌将恢复为null

如何保持token值不被还原?

1 个答案:

答案 0 :(得分:0)

通过将令牌声明为全局变量找到解决方案。

//Checks any reponse obtained for an access token
responseInterceptor: (responseObj) => {
  if("access_token" in responseObj.obj){
    window.token = responseObj.obj.access_token;
  }
  return responseObj
},

//Adds the authorization to the request header if token has been set
requestInterceptor: (requestObj) => {
  if(window.token) {
    requestObj.headers.Authorization = `Bearer ${window.token}`;
  }
  return requestObj
}

我是JS和Swagger的新手,所以答案并不明显。我希望这最终有助于某人。