我试图连接到rss api提供商' Inoreader'我正在使用本地反应。我能够获得授权代码,但是当我提交与令牌交换的帖子请求时,我收到400个错误请求。响应文本未定义。我查了一下,他们的所有参数都与我的应用程序相匹配。我试过了。 这是他们的文档:https://www.inoreader.com/developers/oauth
fetch('https://www.inoreader.com/oauth2/token', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Host': 'www.inoreader.com',
'Content-length': '217',
'User-Agent': navigator.userAgent,
'Content-type': 'application/x-www-form-urlencoded'
},
body: JSON.stringify({
'code':`${this.state.auth_code}&redirect_uri=${this.state.gizmos}&client_id=${this.state.userId}&client_secret=${this.state.userKey}&scope=&grant_type=authorization_code`
})
})
.then((res) => {
this.setState({
userName: res.access_token
});
console.log(res.status);
});
答案 0 :(得分:0)
我在你的代码中看到了三个问题
Content-length
值(217)。这样,服务器只读取请求的217个字符,如果请求更长,则其余部分将被丢弃。Content-type
为urlencoded
,但您可能不会对值进行URL编码。您可以使用[encodeURIComponent()][1]
功能执行此操作。/token
端点要求您发送客户端密钥,但您的应用程序无法保证其安全,因此该密码很容易受到损害。当他们在指南中写道时,请求应该从后端完成。或者您可以要求他们支持OAuth2 for native apps。