LinkedIn oauth 错误缺少必需的参数“client_id”

pet*_*mir 4 javascript linkedin node.js axios

所以我只是从 LinkedIn oauth 1.0 升级到 2.0 并且我已经收到这个错误大约一天了。我在 php 上看到了一篇关于它的帖子,但我无法在 Node JS(Javascript)中弄清楚这是我当前的代码:

axios
    .post("https://www.linkedin.com/oauth/v2/accessToken", {
      grant_type: "authorization_code",
      code: req.query.code,
      redirect_uri: keys.linkedinCallbackURL,
      client_id: keys.linkedinConsumerKey,
      client_secret: keys.linkedinConsumerSecret
    })
    .then(res2 => {
      console.log(res2);
    })
    .catch(error => {
      console.log(error);
    });
Run Code Online (Sandbox Code Playgroud)

如果您有任何想法,请告诉我 :)

链接到 php 解决方案:LinkedIn OAuth a required parameter "clien_id" is missing

LinkedIn 指南链接:https : //developer.linkedin.com/docs/oauth2 (第 3 步发生错误)

Yan*_*iot 8

LinkedIn 文档要求您将数据作为 a 发送application/x-www-form-urlencoded,他们向我们展示了这个示例:

POST /oauth/v2/accessToken HTTP/1.1
Host: www.linkedin.com
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=987654321&redirect_uri=https%3A%2F%2Fwww.myapp.com%2Fauth%2Flinkedin&client_id=123456789&client_secret=shhdonottell
Run Code Online (Sandbox Code Playgroud)

爱可信的文件说,在默认情况下体序列化为JSON:

默认情况下,axios 将 JavaScript 对象序列化为 JSON。

为了正确序列化主体,您应该使用以下querystring模块:

const querystring = require('querystring');

axios
    .post("https://www.linkedin.com/oauth/v2/accessToken", querystring.stringify({
      grant_type: "authorization_code",
      code: req.query.code,
      redirect_uri: keys.linkedinCallbackURL,
      client_id: keys.linkedinConsumerKey,
      client_secret: keys.linkedinConsumerSecret
    }));
Run Code Online (Sandbox Code Playgroud)