OAuth POST fails with oauth_problem=signature_invalid but GET passes Edited

I am facing an issue in my Node Application. While making a POST request to create Issue endpoint, it always fails with oauth_problem=signature_invalid.

But when I make a GET request to other endpoints, it works.

My code:

const fs = require('fs');
const OAuth = require('oauth').OAuth;
const config = require('./config');
var payload = {// ... };

const consumer = new OAuth(
    `${config.baseUrl}/plugins/servlet/oauth/request-token`,
    `${config.baseUrl}/plugins/servlet/oauth/access-token`,
    config.consumerKey,
    fs.readFileSync('./keys/jira_privatekey.pem', 'utf8'),
    "1.0",
    "http://example.com",
    "RSA-SHA1");

consumer.post(`${config.baseUrl}/rest/api/2/issue/`, config.accesToken, config.tokenSecret, payload, (e, data, resp) => {
    console.log(e);
    console.log(data);
});

 

I double checked the URLs, and all of them are correct.

Error:

oauth_problem=signature_invalid

2 answers

0 vote
Gonchik Tsymzhitov Community Champion Oct 06, 2017

Hi! 

Please, have a look this knowledge base:

https://confluence.atlassian.com/kb/oauth-error-oauth_problem-signature_invalid-720406720.html

 

Cheers, 

Gonchik Tsymzhitov

Hi,

Please correct me if I am wrong:

Base URL is where my JIRA is hosted. eg: dev.domain.org.com

Following this tutorial, I have set my Application URL to http://example.com

As you can see above in code, I have passed as http://example.com.

 

Am I still missing something? This is a console application, its not behind firewall or nginx proxy.

But my node is not hosted anywhere, its a console application. How will I get the node app link?

 

I generated access token using this guide

Nirajmchauhan have you found a solution for this? I am in the exact same position as you?

0 vote

Hi Guys, 

Any update on this....Facing the same issue

So one thing that was messing up my consumer connection was that my post body wasn't a string so then in the consumer library it was changing the 'applicaiton/json' type to a different content type and that was why it was failing. 

 

 

SO MAKE SURE YOUR POST_BODY IS A STRING

 

*edit for emphasis

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published Thursday in Jira

Mission-critical battery manufacturer fulfills FAA software requirements with Commit Policy Plugin

EaglePicher Technologies is a leading manufacturer of battery systems for diverse industries like defense, aviation, space or medical. As they operate in highly regulated industries, keeping a clear ...

168 views 0 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you