首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无效签名开放银行项目Oauth1.0a

无效签名开放银行项目Oauth1.0a
EN

Stack Overflow用户
提问于 2016-05-26 08:28:14
回答 1查看 736关注 0票数 1

我正在开发一个带有开放银行项目的本机应用程序,我不能使用建议的SDK,甚至nodeJS 1也不能使用,因为RN中没有Oauth1.0。在传递'/oauth/initiate‘和'/oauth/authorize’之后,访问令牌请求'/oauth/ Token‘上出现了一个糟糕的签名错误,没有任何问题。

正如docs 这里中所指定的,在访问受保护的资源之前,我们需要通过POST请求获得访问令牌,这给了我糟糕的签名答案。

以下是请求的代码:

代码语言:javascript
运行
复制
getAccessToken(verifier){
let request = {
  url:    'https://api.openbankproject.com/oauth/token',
  method: 'POST',
  data: {
    oauth_verifier: verifier,
    oauth_token: this.auth.oauth_token,
    oauth_token_secret: this.auth.oauth_token_secret
  }
}
return fetch(this.url_login, {
  method:     request.method, //POST
  form:       request.data,
  headers:    this.oauth.toHeader(this.oauth.authorize(request))
})
.then((res) => {return res.text()})
.then((txt) => {
  console.log('setUID', txt, this.url_login, {
    method:     request.method,
    form:       request.data,
    headers:    this.oauth.toHeader(this.oauth.authorize(request))
  })
})

以下是经签署的请求:

对象{方法:"POST",窗体: Object,headers: Object} form: oauth_token:“.”Oauth_token_secret:“……”oauth_verifier:"71531“

标题:授权:"OAuth oauth_consumer_key=“.”、oauth_signature_method=“HMAC-1.0 256”、oauth_timestamp="1464248944“、oauth_token=”.“、oauth_token_secret=”.“、oauth_verifier="71531”、oauth_version=“1.0”

我尝试过使用和不使用Oauth_token_secret,也将oauth_verifier从一个身体移动到另一个查询,但是使用相同的不良签名结果。

有什么想法吗?thx

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-25 07:47:46

您可以使用oauth模块https://github.com/ciaranj/node-oauth

代码语言:javascript
运行
复制
   var oauth=require('oauth');         
   var consumer = new oauth.OAuth(
     "https://twitter.com/oauth/request_token", "https://twitter.com/oauth/access_token", 
_twitterConsumerKey, _twitterConsumerSecret, "1.0A", "http://127.0.0.1:8080/sessions/callback", "HMAC-SHA1");

然后生成这样的签名:

代码语言:javascript
运行
复制
    var parameters = consumer._prepareParameters("user_access_token", "user_access_token_secret", "http_method", "request_url");
    var headers = consumer._buildAuthorizationHeaders(parameters);

参数数组包含签名,还可以在需要时生成授权头。希望它有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37455475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档