当前位置: 首页 > 知识库问答 >
问题:

大摇大摆地接收和发送授权令牌

颛孙子民
2023-03-14

我正在使用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
}

但是,要通过标头将其传递到后续请求,这只适用于一次调用,之后令牌将恢复为<code>null</code>。

如何防止令牌值被还原?

共有1个答案

仇炜
2023-03-14

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

//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的新手,所以答案并不明显。我希望这最终能帮助到一些人。

 类似资料:
  • 我想大摇大摆地发布一个json正文,就像这样: 目前,我有这样的定义: 但是数据是在URL中发送的。这里是Swagger提供的生成的curl: 我知道<code>查询</code>关键字不好,但我没有找到POST JSON正文的方法。我尝试了<code>formData</code>,但没有成功。

  • 我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }

  • 我创建了一个新的Web Api项目,添加了ASP.NET标识并配置了OAuth,如下所示: 谢了。 另外,我应该说Swagger文档对我所有的控制器都适用,只是我忽略了一个明显的方法--如何登录。

  • 理想情况下,我们将有一个显示所有标记为public的控制器/方法的大摇大摆的页面,以及另一个显示所有endpoint的密码安全endpoint。这可能吗?

  • 我们在我们的泽西应用程序中使用了@Role允许注释来限制用户对应用编程接口某些部分的访问。我们如何在SwaggerUI中显示这些信息? 到目前为止,我已经用@ApiOperation注释了方法以显示in/out参数,并尝试使用@Authorization/@AuthorizationScope,但我只为我们不使用的oauth2显示了它。最接近out case的是ApiKeyAuthDefiniti

  • 我使用这些软件包(通过作曲家安装) 在def控制器中,我有以下注释: 因此,当我尝试通过swagger ui测试此路由时,我遇到了错误 当我检查标题(火狐)时,我没有看到 授权:不记名{ {访问令牌}} 但是我有我的代币 Cookie: XSRF-TOKEN=eyJpdiI6Ik5COUV5Y1ltRTM4eXNsRlpLY2ptTGc9PSIsInZhbHVlIjoiNDFCbG95c1RHSH