javascript 如何使用Nodejs获取客户端凭据?

xzabzqsa  于 2023-01-04  发布在  Java
关注(0)|答案(1)|浏览(158)

我是NodeJs的新手,我想使用作业API,但我需要首先获得access_token(客户端凭据),所以我尝试POST我的CLIENT_ID & CLIENT_SECRET来获得它,但我认为我在代码中犯了一些错误:
根据doc,我试图重现属性的顺序,所以我尝试了以下操作:

const express = require("express");
const axios = require("axios");

const app = express();

app.get ("/test", async (req, res) => {
  const data = await genrateAccessToken();
  console.log(data);
  res.json(data);
});

async function genrateAccessToken() {
  axios.post('https://authentification-candidat.pole-emploi.fr/connexion/oauth2/access_token'{
     header : {
      'Content-Type': "application/x-www-form-urlencoded",
    },
     body: {
      grant_type: client_credentials,
      client_id: 'Client_ID',
      client_secret: 'Client_Secret',
      scope: 'api_labonneboitev1'
    }
    

});
   return response.data;
}

app.listen(5000, () => {
  console.log(`App listening on port `)
})
ldioqlga

ldioqlga1#

By default, axios serializes JavaScript objects to JSON,但是您将Content-Type头设置为application/x-www-form-urlencoded,这不是JSON。
要对正文进行URL编码,可以执行以下操作:

body: new URLSearchParams({
  grant_type: client_credentials,
  client_id: 'Client_ID',
  client_secret: 'Client_Secret',
  scope: 'api_labonneboitev1'
})

或者,如果这个API确实需要JSON,那么可以将Content-Type设置为application/json
API是否接受JSON、urlencoded或其他格式取决于它,但底线是,您必须弄清楚这个API接受什么格式,相应地设置Content-Type头部,* 并 * 相应地格式化主体。

相关问题