Как получить доступ к токену аутентификации Wordpress - PullRequest
1 голос
/ 19 апреля 2019

Мы пытаемся связать наш сайт с Wordpresses API, используя OAuth 2.0.Надеемся, что клиент может пройти аутентификацию и публиковать в WordPress с нашего сайта.Для этого нам нужен токен доступа.

Мы успешно подключились к Wordpress, чтобы получить код доступа.Мы следили за API Wordpress и работали для одного пользователя (с секретным ключом, а не с 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 голосов
/ 23 апреля 2019
 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
      };

Нам нужно было включить заголовок с этой информацией, и нам нужно было использовать переменную «форма» вместо «данные».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...