【问题标题】:JIRA REST API call with oauth, where to put token?使用 oauth 调用 JIRA REST API,将令牌放在哪里?
【发布时间】:2017-01-03 20:44:53
【问题描述】:

通过 oauth 成功登录后,我收到了一堆数据。

"oauth_token" => "07HQgsnnXaaaaaaaaaaki0GA9wGj2ThO"
"oauth_token_secret" => "2853FBbR5WbbbbbbbbbbIdQIMp5kmXVw" 
"oauth_expires_in" => "157680000" 
"oauth_session_handle" => "2a2ccccccccccKRiQmrl7EsPQd7f0QD7" 
"oauth_authorization_expires_in" => "160272000"

我想对其余的 api 进行 api 调用。在文档 (https://docs.atlassian.com/jira/REST/cloud/#auth/1/session-currentUser) 的身份验证章节中,oauth 身份验证是首选方法。

在链接的示例中,很明显用户名:密码身份验证更容易(https://developer.atlassian.com/jiradev/jira-apis/jira-rest-apis/jira-rest-api-tutorials)。事实上,在整个文档中,所有示例都具有更简单的用户名:密码身份验证(fred:fred)。就我而言,我想知道 oauth-authentication 之后的令牌是如何在请求中传输到 rest-api 的。

我必须将它添加到标题中吗?用哪个名字?还是我必须将它附加到每个网址?

文档中唯一“有效”的帮助是这一行,但在这里你看不到访问令牌是如何包含在请求中的

java -jar rest-oauth-client-1.0.one-jar.jar request ACCESS_TOKEN JIRA_REST_URL

有人已经解决了这个问题吗?我必须将 oauth_token 放在哪里?

最好的问候

【问题讨论】:

  • 你打的怎么样?您是使用官方的 JRJC 还是从您的代码中手动执行?
  • 抱歉耽搁了,我正在尝试用php来做这个,所以没有JRJC
  • 没问题。您是否查看/搜索过 PHP 库以进行 OAuth2 支持的网络调用?我的意思是,Jira 没有什么特别之处,它们符合正常的 Oauth2 规范

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


【解决方案1】:

我想我找到了问题的答案。 这个过程很好描述在https://dev.twitter.com/oauth/overview/creating-signatures

最好的问候

【讨论】:

  • 即使这有助于计算每个请求的签名,但这并不能回答我最初的问题,而是对 jira-rest api 的请求中的令牌/签名。
【解决方案2】:

您将它放在每个请求的授权标头中,如下所示:

var headers = {
    Authorization: 'Bearer ' + oauthToken
};

ehaders 对象将成为您的 http 客户端请求的参数。根据您使用的框架,您可能可以将其添加为默认标头配置,以便为每个请求自动添加,您不必担心。

【讨论】:

  • 在您的示例中Bearer 是什么?
猜你喜欢
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 2020-04-02
相关资源
最近更新 更多