使用Oauth标头向Jira REST API发出POST请求-响应401“匿名用户”错误

时间:2019-03-01 00:28:34

标签: javascript reactjs oauth jira jira-rest-api

我正在构建一个Web应用程序,它将具有提交错误报告的表单。错误提交表单提交后,会使用 jira / rest / api / 2 / issue 端点向JIRA实例发出HTTP POST请求,以根据用户输入的内容创建一个问题表格。

我已根据JIRA实例对我的应用程序进行了身份验证,并获得了一个Oauth承载令牌,该令牌可包含在我的HTTP请求标头中。但是,当触发此POST请求时,我收到401错误,并显示以下错误消息:

  

匿名用户无权在此项目中创建问题。请先尝试登录。

我不确定JIRA服务器为什么认为该请求是匿名的,因为该请求包含带有“ Oauth”令牌的“ Authorization”标头,我相信该令牌应将请求身份验证为特定用户。但是也许我误解了Oauth令牌和JIRA实例之间的关系。

这是触发请求的函数的样子(使用React):

  submitBug() {
    var jira_create_issue_api_url = "https://placeholder.org/jira/rest/api/2/issue";
    var xhttp = new XMLHttpRequest();

    xhttp.open("POST", jira_create_issue_api_url, true); //async POST to API resource

    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.setRequestHeader("Accept", "application/json");
    xhttp.setRequestHeader("X-Atlassian-Token", "no-check");
    xhttp.setRequestHeader("Authorization", "Bearer <oauth token here>");

    xhttp.onload = () => {
      console.log("JIRA REST API responded: ");
      console.log(xhttp.status);
      console.log(xhttp.response);
    };

    var summary_text = this.props.bug_summary; //filled out by user in form
    var desc_text = this.state.bug_description; //filled out by user in form

    var bug_data = {
      fields: {
        project: {
          key: "KEY"
        },
        summary: summary_text,
        description: desc_text,
        issuetype: {
          name: "Bug"
        }
      }
    };
    xhttp.send(JSON.stringify(bug_data)); 
  }

任何见识都将不胜感激!我是使用JIRA REST API进行开发的新手,所以我可能会遗漏一些明显的东西。

编辑:根据要求显示在Chrome中显示的标题:

  

接受:application / json

     

授权:不记名[这里是oauth令牌]

     

内容类型:application / json

     

来源:[应用网址]

     

引荐来源:[应用网址]

     

用户代理:[浏览器特定的信息]

     

X-Atlassian-Token:无需检查

0 个答案:

没有答案