javascript - OAuth2:如何获取令牌?
问题描述
我收到此错误
RequestError:错误:参数错误,options.body
发送请求后。我在 API 中看到了这一点:
grant_type = partner
partner_id = partner id
partner_secret = partner secret
这是源代码:
getToken() {
let data = {
grant_type: 'partner',
partner_id: config.id,
partner_secret: config.secret,
};
const url = config.url;
return this.postRequest(url, data)
.then((result) => {
console.log(result);
if (result) {
console.log(result);
return result;
}
})
.catch((err) => console.log(err));
}
postRequest(url, data) {
const options = {
uri: url,
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: data,
};
return request(options);
}
此代码应返回如下令牌:
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"bearer",
"expires_in":1119,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
}
代码有什么问题?
解决方案
数据应该是一个查询字符串!
getToken() {
let data = {
grant_type: 'partner',
partner_id: 'config.id',
partner_secret: 'config.secret',
};
data = querystring.stringify(data);
const url = config.url;
return this.postRequest(url, data)
.then((result) => {
if (result) {
console.log(result);
return result;
}
})
.catch((err) => console.log(err));
}
推荐阅读
- ruby-on-rails - 如何在 f.collection_select 上提交事件,并根据下拉列表中选择的内容更改显示的内容?
- unity3d - 需要帮助 Assets\FlyLittleBird.cs(7,27): error CS1003: Syntax error, ',' expected
- javascript - 使用 date-fns 将日期解析为 UTC 的正确方法
- rxjs - 以编程方式离开 rxjs-for-await 循环
- postgresql - WAL 文件 LSN 如何反映它们在抽象 WAL 序列中的位置
- html - 包含iframe的flexbox内奇怪的CSS宽度?
- python - 使用带有 debugpy 的 VS Code 无法连接到 AWS EC2 实例
- wix - Wix 工具集 - CustomAction - ExeCommand - 1 失败 1 成功。你能帮助理解为什么吗?
- git - 检查我是否有对 ssh-git 存储库的密钥驱动访问而不克隆它
- typescript - 如何将运行时字符串转换为字符串枚举