如何访问Wordpress身份验证令牌

时间:2019-04-19 19:39:40

标签: node.js wordpress express oauth-2.0 jwt

我们正在尝试使用OAuth 2.0将我们的网站链接到Wordpresses API。希望客户可以从我们的网站进行身份验证并将其发布到WordPress。为此,我们需要获取访问令牌。

我们已成功与Wordpress连接,以接收我们的访问代码。我们遵循了Wordpress api,并使其可为单个用户使用(密钥不与OAuth一起使用)。我们尝试过的事情是添加标题,将数据更改为不同的名称示例:params,body

这是我们一直在使用的代码的简化版本

const axios = require('axios');
axios({
   method: "POST",
   data: {
       grant_type: 'authorization_code',
       client_id: '12345',
       client_secret: 'ABCABC1235412345',
       code: 'Abc123',
       redirect_uri: 'https://localhost:5000/wordpress/callback_wordpress'
   },
   url: 'https://public-api.wordpress.com/oauth2/token'
}).then( (response) => {
   console.log(response);
}).catch( (error) => {
   console.log(error);
});  

我们希望收到一个jwt访问令牌,但是却收到此400错误:

data:
    { error: ‘invalid_client’,
      error_description: ‘The required “client_id” parameter is missing.’ } } }

显然,我们缺少client_id,但是我们将其包含在请求中。还有其他需要包含的地方吗?

1 个答案:

答案 0 :(得分:0)

 var authOptions = {
        url: 'https://public-api.wordpress.com/oauth2/token',

        form: 
        {
          grant_type: 'authorization_code',
          code: code,
          client_id: client_id,
          client_secret: client_secret,
          redirect_uri: redirect_uri,
        },
        headers: {
          'Authorization': 'Basic ' + (Buffer.from(client_id + ':' + client_secret).toString('base64'))
      },

        json: true
      };

我们需要包含带有该信息的标头,并且我们需要使用变量“ form”而不是“ data”。