Atlassian Jira-仅在使用查询参数时为401

时间:2018-10-04 19:49:07

标签: rest jwt jira

当前正在使用ACE框架开发JIRA插件。使用集成的httpClient执行请求。

当我发出这样的请求

https://instance.atlassian.net/rest/api/3/search

使用标头Authorization: JWT <token>可以正常工作,但是当我使用类似这样的查询参数运行相同的请求

https://instance.atlassian.net/rest/api/3/search?maxResults=1

该请求失败,并显示401。我已确认JWT未到期,原因是还原了查询参数并再次看到成功。

我的atlassian-connect.json具有端点要求的范围READ

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我对其余的“ rest / api / 2 / search?maxResults = 1”有效感到惊讶。但是当我登录到实例时确实如此。

如果我在问题搜索中尝试作为JQL( maxResults = 1 ),则会收到无效或未经授权的错误消息。

我的实例在内部(API V2)。您的似乎在云(V3)中。因此,REST搜索的工作方式可能更像V3中的问题搜索,因此返回了401

猜测应该很容易测试...用一些实际的JQL或过滤器ID替换 maxResults = 1 ,看看结果是否有变化

答案 1 :(得分:0)

由于您使用的是ACE并且使用的是httpClient,因此您可能想尝试使用checkValidToken()路由。下面的代码段对我有用。

app.get('/mySearch', addon.checkValidToken(), function(req, res) {
    var httpClient = addon.httpClient(req);

    httpClient.get({
        url: '/rest/api/3/search?maxResults=1',
        headers: {
            'X-Atlassian-Token': 'nocheck',
            'Content-Type': 'application/json'
        }
    },
    function (err, httpResponse, body) {
        if (err) {
            return console.error('Search failed:', err);
        }

        console.log('Search successful:', body);
    });
});