使用OAuth和Node.JS验证JIRA REST API

问题描述:

我在Node.js中构建了一个客户端应用程序,用于创建新的JIRA问题,并且我想使用OAuth对用户进行身份验证。 Atlassian文档对Jira和Oauth新手来说相当糟糕。因此,我正在寻找一个描述如何设置JIRA应用程序链接的示例,以及如何在通过OAuth连接到Jira的节点中构建基本应用程序。我不知道还有什么地方可以看。 (我正在使用JIRA v6.0.4)使用OAuth和Node.JS验证JIRA REST API

+1

你有没有成功? Atlassian的Bitbucket上有一个Node.js示例,它位于:https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples。 – Brian

+1

看看这个答案 - 可能对你有所帮助:http://*.com/a/19116334/129815 –

Brian还提到Atlassian回购中有example for Node.JS with OAuth。我认为这是双腿认证。

它需要一个已经由您设置的预先协商的消费者密钥。下面是一个例子如何获得令牌,你可以在你的配置文件保存:https://developer.atlassian.com/jiradev/api-reference/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-oauth-authentication

+0

不要忘记检查这个回购和用户解决方案的问题。这是相当古老,需要更新! – Mouneer

Here's a blog describing node.js and jira authentication using Oauth

这是一个明确的框架。我粘贴下面的代码的一部分。

var base_url = "YOUR_JIRA_BASE_URL"; //example https://test.atlassian.net 

app.get('/jira', function(req, res) { 

var oa = new OAuth(base_url + "/plugins/servlet/oauth/request-token", //request token 
    base_url + "/plugins/servlet/oauth/access-token", //access token 
    "mykey", //consumer key 
    "YOUR_PEM_FILE_CONTENT", //consumer secret, eg. fs.readFileSync('jira.pem', 'utf8') 
    '1.0', //OAuth version 
    "http://localhost:1337/jira/callback", //callback url 
    "RSA-SHA1"); 
oa.getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret) { 
    if (error) { 
     console.log(error.data); 
     response.send('Error getting OAuth access token'); 
    } else { 
     req.session.oa = oa; 
     req.session.oauth_token = oauthToken; 
     req.session.oauth_token_secret = oauthTokenSecret; 
     return res.redirect(base_url + "/plugins/servlet/oauth/authorize?oauth_token=" + oauthToken); 
    } 
}); 
}); 

如果有人对代码的任何部分感到困惑,可以给此答案添加评论。