我正在使用Lyft API,并试图找出如何使用具有节点脚本的axios获取访问令牌.
我可以通过填写表格来手动获取访问令牌,如下所示:
当我填写表格时,我可以成功地从Lyft获得一个新令牌.
我试图通过执行以下操作将此转换为使用axios的POST请求:
var axios = require('axios'); var data = { "grant_type": "client_credentials", "scope": "public", "client_id": "XXXXXXXXX", "client_secret": "XXXXXXXX" }; var url = "https://api.lyft.com/oauth/token"; return axios.post(url, data) .then(function(response){ console.log(response.data) }) .catch(function (error) { console.log(error); });
当我运行脚本时,我收到此错误:
{ error_description: 'Unauthorized', error: 'invalid_client' }
我的axios请求中缺少什么?任何帮助,将不胜感激!
根据Lyft(https://developer.lyft.com/docs/authentication)的文档,您需要使用HTTP Basic身份验证.
var axios = require("axios"); axios.request({ url: "/oauth/token", method: "post", baseURL: "https://api.lyft.com/", auth: { username: "vaf7vX0LpsL5", password: "pVEosNa5TuK2x7UBG_ZlONonDsgJc3L1" }, data: { "grant_type": "client_credentials", "scope": "public" } }).then(function(res) { console.log(res); });
快乐编码:)
!重要的事情!
我强烈建议你尽快更改你的secret_id和client_secret,因为它们不是公开的东西,如果你将它们用于一个重要的项目或类似的东西.