我正在Node.js中构建一个客户端应用程序来创建新的JIRA问题,我想使用OAuth对用户进行身份验证。 Atlassian的文档对于Jira和Oauth的新人来说非常糟糕。所以,我正在寻找一个简单描述如何设置JIRA应用程序链接的示例,以及如何在通过OAuth连接到Jira的节点中构建基本应用程序。我不知道还能在哪里看。 (我正在使用JIRA v6.0.4)
答案 0 :(得分:3)
在Atlassian回购中有一个example for Node.JS with OAuth,Brian也提到过。我认为这是针对两条腿的身份验证。
它需要您已经设置的预先协商的消费者密钥。以下是如何获取可以保存在配置文件中的令牌的示例:https://developer.atlassian.com/jiradev/api-reference/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-oauth-authentication
答案 1 :(得分:1)
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);
}
});
});
如果有人对代码的任何部分感到困惑,可以在此答案中添加评论。