Заголовок авторизации искажен в почтовом запросе с Basi c auth (JavaScript) - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь создать нового пользователя на сайте wordpress удаленно, я использую остальные api, доступные изначально на всех веб-сайтах wp, проблема, с которой я сталкиваюсь, заключается в том, что для создания нового пользователя вам необходимо пройти аутентификацию с помощью администратора учетной записи, при отправке запроса я получил ошибку:

Object {
  "code": "jwt_auth_bad_auth_header",
  "data": Object {
    "status": 403,
  },
  "message": "Authorization header malformed.",
}

Моя функция все в порядке, кроме этих заголовков, если кто-то может помочь

signup = (e) => {
    let { username, email, password, password2 } = this.state
    if (username !== '' && email !== '' && password !== '') {
      if (password === password2) {
        this.setState({ loading: true, error: null })
        var auth = 'Basic ' + Base64.encode('coolusername' + ':' + 'securepassword')
        console.log(auth)
        var url = 'https://example.com'
        var request = new Request(url + '/wp-json/wp/v2/users', {
          method: 'POST',
          headers: new Headers({
            'Content-Type': 'application/json',
            'Authorization': auth
          }),
          body: JSON.stringify({
            username: username,
            email: email,
            password: password
          })
        })
        fetch(request)
          .then((response) => {
            response.json().then((results) => {
             // ...
            })
          })
          .catch(function (err) {
            console.log(err)
          })
      } else {
        this.setState({ error: 'Passwords do not match' })
      }
    } else {
      this.setState({ error: 'Error: Missing fields' })
    }
  }

Я считаю, что эта ошибка вызывает это 'Authorization' должно сопровождаться base64 username: password, но когда я пытаюсь декодировать строку, которую я передал, я получаю другую строку, не совсем то, что я ввел, я ранее использовал js-base64 npm библиотеку, она работает нормально .

1 Ответ

0 голосов
/ 17 июня 2020

, если кто-то позже будет искать решение, я исправил проблему, используя другой плагин, файл .htaccess и файл wp-config. php файлы не требуют дополнительных изменений.

Также authorization header совсем не требуется.

wp-rest-user

https://wordpress.org/plugins/wp-rest-user/

Чтобы зарегистрировать Пользователь, использующий REST API, отправляет запрос POST в / wp-json / wp / v2 / users / register с телом JSON (Set header: content-type: application / json) с тремя ключами: имя пользователя, электронная почта и пароль.

Чтобы получить пароль с помощью REST API, отправьте запрос POST на / wp-json / wp / v2 / users / lost-password, включая JSON (Установить заголовок: тип-содержимого: приложение / json) тело с тремя ключами: user_login.

...