我正在为智能电视创建一个 JavaScript 应用程序以在电视上显示仪表板。 我使用 JIRA REST API 获取仪表板列表。我为此使用的网址是:
jira/rest/api/2/dashboard?startAt=&maxResults=
然后我创建一个墙板,如下所示,以便在电视上显示它们:
jira/plugins/servlet/Wallboard/?dashboardId=&os_username=&os_password=
由于 os_username
和 os_password
,JIRA 知道我已通过身份验证并获得正确的列表。这个列表是我从一开始就需要的,但是因为我用参数 os_username
和 os_password
调用了上面的 url,它确实得到了正确的列表
但是在电视启动时/我第一次使用 JIRA 获取仪表板列表时,没有人经过身份验证,因此它需要一个随机列表,而不是我需要获取的列表。
有一些方法可以使用以下命令在 JIRA 中进行身份验证:
curl -D- -u fred:fred -X GET -H "Content-Type: application/json" http://example.com/rest/api/2/issue/createmeta
但我不知道如何在 JavaScript 中使用该命令。
那么谁能告诉我如何使用基本身份验证在 JIRA 中进行身份验证,非常重要的是它必须是 JAVASCRIPT。
最佳答案
你从 here 得到这个, 我相信。在同一页上,解释了如何“自己动手”。我将“翻译”您需要执行的步骤,以便在 JS 中执行相同的请求。
- 请求方法应该是GET
- 您应该有 2 个 header :Authorization Header and Content-Type Header . 您的 Content-type header 应如下所示: “内容类型:application/json”
对于授权 header :
- 构建用户名:密码 形式的字符串
- Base64对字符串进行编码(使用 window.btoa() 和 window.atob() )- 您实际上不需要第二个,但我把它放在那里以供引用
- 提供内容为“Basic”的“授权” header ,后跟编码字符串。例如,字符串“fred:fred”在 base64 中编码为“ZnJlZDpmcmVk”,因此您的授权 header 应如下所示: “授权:基本ZnJlZDpmcmVk”
所以最后你需要用提供的两个 header 发出你的 GET 请求,你应该被授权。此外,注意 Base64 是可逆的,而不是加密函数。是编码。请求当然会通过 HTTPS,但如果 SSL 被破坏,Base64 编码的字符串可能会被反转。
关于javascript - 如何在 JavaScript 中使用 JIRA REST API 的基本身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15006705/