如何使用 javascript 在 Swagger UI 3.0 版本中添加“承载”身份验证标头,而不是单击“授权”按钮

2024-04-14

我正在使用 Swagger UI 3.0 调用此处列出的端点 API。要调用 api,我必须在标头中添加身份验证。我们使用 javascript 将身份验证添加到 swagger UI,这将全局身份验证添加到 swagger UI 2.0 版本的 swagger UI 中的所有 API。这样,我就不必单击 swagger UI 中的“授权”按钮来在标头中添加身份验证令牌。

但最近我们转向了新的 swagger 版本 3.0。 结果,这个 javascript 不再工作了。

有没有办法在 Swagger UI 3.0 中使用任何 javascript 添加 Bearer auth 标头,而不是单击“授权”按钮。

我问这个问题是因为每次我打开 swagger UI 来调用 API 时手动添加身份验证真的很烦人。

I don't want to click this below authorize button to add Auth header. Instead I want to add this using some javascirpt. enter image description here enter image description here


纯javascript方式操作swaggerUI Reactjs授权表单并设置承载令牌:(来自浏览器控制台,在chrome中测试)

let jwtToken = "YOUR_JWT_TOKEN"; //just token without 'Bearer ' prefix

let openAuthFormButton = document.querySelector(".auth-wrapper .authorize.unlocked");
openAuthFormButton.click();

setTimeout(function() {
    let tokenInput = document.querySelector(".auth-container input");
    let authButton = document.querySelector(".auth-btn-wrapper .modal-btn.auth");
    let closeButton = document.querySelector("button.btn-done");
    
    let nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set;
    nativeInputValueSetter.call(tokenInput, jwtToken);
    
    let inputEvent = new Event('input', { bubbles: true});
    tokenInput.dispatchEvent(inputEvent);
    authButton.click();
    closeButton.click();
}, 500);

单击“授权”按钮,打开授权表单,添加一些等待(500 毫秒),以便表单有时间打开并初始化表单字段。然后将 JWT 令牌插入到输入字段中,对我来说棘手的部分是告诉 React 该值已更新,为此你必须直接调用 set 函数(因为 React 会覆盖它)并按此处所述分派“input”事件https://stackoverflow.com/a/46012210/4695799 https://stackoverflow.com/a/46012210/4695799

之后,在公园散步以执行单击“授权”按钮并关闭表单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 javascript 在 Swagger UI 3.0 版本中添加“承载”身份验证标头,而不是单击“授权”按钮 的相关文章

  • 您可以将 window.location 设置为带有 chrome:// 的页面吗?

    我正在尝试将用户重定向到chrome settings 或者这实际上可以是带有chrome 前缀 但是window location chrome settings or window location chrome crash 不工作 有
  • 使用 Selenium 自动化结帐流程时出现 403

    我正在尝试使用 python 和 selenium 创建一个脚本来自动执行 bestbuy ca 的结帐过程 我一直到达最后阶段 您可以单击以查看最终订单 但当我尝试单击到最后一步时 收到以下 403 禁止消息 如网络响应中所示 是否有服务
  • ng-focus 发射两次而 ng-blur 从不发射

    到目前为止 我对 Angular 已经有了相当的经验 但这似乎是在较低级别上发生的 DOM 事件传播方式的事情 由于某种原因 在我的申请的一部分中 我有ng focus and ng blur一样的input 但是ng focus事件触发两
  • jQuery-UI 的自动完成显示效果不佳,z-index 问题

    我目前正在我的客户网上商店中实现 jQuery UI 的自动完成功能 问题是 自动完成所在的元素的 z 索引高于自动完成的 z 索引 我尝试手动设置自动完成 z index 但我感觉 jQuery UI 正在覆盖它 事实上我的问题是重复的自
  • 在 ES6 Node.js 中导入“.json”扩展名会引发错误

    我们正在尝试使用 Node js 导出和导入 ES6 模块的新方法 对于我们来说 从package json文件 下面的代码应该做到这一点 import name version from package json 但是 执行时会抛出以下错
  • 如何绑定国家/地区更改国际电话输入

    我使用国家代码插件名称国际电话输入 js https intl tel input com 这是我的演示页面 在页面中我想清空手机 输入字段 当国家选择改变时 div class demo h3 Demo h3 div class iti
  • 如何在Keystone.js List Map中指定多个字段?

    想知道如何在 Keystone js List Map 中指定多个字段 例如 基于 Keystone 数据模型文档 http keystonejs com docs database http keystonejs com docs dat
  • 尝试在 Windows 上执行 package.json 中的脚本会引发 JScript 错误

    所以我正在尝试构建 javascriptair site 在 的里面package json有一个 npm 脚本指向 javascript 命令 package scripts 找到该存储库https github com kentcdod
  • 打开图层地图,经纬度获取地址

    我正在尝试获取带有经度和纬度的地址 城市 邮政编码 街道地址 但我不知道如何获取 我正在使用开放图层 当我单击地图的一部分时 会获取该位置的经度和纬度 有人有解决方案吗 div class map div
  • 如何在D3中导入json数据?

    如何在D3中导入json文件 I did d3 json temp json 但是我如何在进一步的代码中访问这个数据集呢 到目前为止我已经尝试过 var data d3 json temp json 但使用 data data 在其余代码中
  • CKFinder 如何在选择图像(文件:选择)时获取尺寸 URL 和尺寸(宽度/高度)?

    我正在使用 CkFinder 3 成功上传图像后 我需要能够在用户单击 选择 按钮后进行检测 文件名 ID url 原始图像的宽度和高度 目前我正在使用files choose但我找不到有关 cb 事件的信息 知道如何解决吗 代码示例将不胜
  • TSConfig JSX:React JSX 与 React

    在将 Typescript 与 React 一起使用时 我们必须指定jsx in compilerOptions in tsconfig json file It has preserve react react native react
  • RxJS 将三元组中的属性组合到表中

    我有一项服务生成类似于三元组的对象 它们将采用以下格式 country attribute value Example country usa attribute population value 100 country mexico at
  • JavaScript 中 == 和 === 的区别[重复]

    这个问题在这里已经有答案了 有什么区别 and 在 JavaScript 中 我也见过 and 运营商 还有更多这样的运营商吗 看看这里 http longgoldenears blogspot com 2007 09 triple equ
  • 批量删除如何工作?

    我尝试使用bulkDelete让我的机器人删除其消息 但我收到此错误 node 5724 UnhandledPromiseRejectionWarning Unhandled promise rejection rejection id 1
  • JavaScript 排序列表

    Javascript 或 jQuery 中有排序列表吗 我有一个巨大的列表 随着时间的推移 插入操作很少 每次添加单个项目时 我无法为整个列表调用 object sort 我需要插入 o log n 不 没有 你拥有的只是Array sor
  • 如何检测鼠标指针位于浏览器关闭按钮上时的事件? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 换句话说 这是用于检测事件的 javascript jquery 代码当鼠标指针位于浏览器的关闭按钮 X按钮 上时 或者当鼠标指针进入
  • 在画布中的鼠标位置放大/缩小

    我正在尝试使用 p5 js 实现缩放功能 当前缩放级别以及 x 和 y 位置存储在controls view目的 默认位置或 0 0 位置位于左上角 问题是调整放大 缩小时的 x 和 y 位置值 以便无论视图的当前位置是什么 它都会停留在缩
  • 如何解析使用YUI数据源返回的NULL值

    我正在使用 YUI 数据表和数据源来渲染我的项目之一中的数据 返回的数据恰好为NULL YUI数据源无法解析它 下面是数据源和数据表的声明代码 为了便于阅读 我将每个声明分开 列说明声明 var columnDescription key
  • Google Universal Analytics - 命令被忽略

    我正在使用 Google Universal Analytics 来跟踪页面浏览量 当我导航到具有 Google Analytics 网站实时功能的页面时 我可以看到 因此我的代码一定可以正常工作 然而 Chrome 一直在控制台中显示 I

随机推荐