我正在使用 Open Bank Project 开发一个 React-Native 应用程序,但我不能使用建议的 SDK,甚至不能使用 nodeJS,因为 Oauth1.0 在 RN 中不可用。在通过“/oauth/initiate”和“/oauth/authorize”后,我遇到了访问令牌请求“/oauth/token”的错误签名错误,没有任何问题。
正如此处的文档中所述,在访问受保护的资源之前,我们需要通过 POST 请求获得访问令牌,这给了我错误的签名答案。
这是我的请求代码:
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”,形式:对象,标题:对象} 形式:oauth_token:“...” oauth_token_secret:“...” oauth_verifier:“71531”
headers: Authorization: "OAuth oauth_consumer_key="...", oauth_nonce="3UlQ5dx958tibf6lSg0RUGPQFZeV7b8V", oauth_signature="weyE1lFkoIjAErYLKdSi9SDlCZsNBi7%2BuAkLV2PWePo%3D", oauth_signature_method="HMAC-SHA256", oauth_timestamp="1464248944", oauth_token="... ", oauth_token_secret="...", oauth_verifier="71531", oauth_version="1.0""
我尝试过使用和不使用 Oauth_token_secret,还将 oauth_verifier 从正文移动到查询,但具有相同的错误签名结果。
任何想法?谢谢