Axios: базовая аутентификация не работает с GET-запросом - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть запрос на получение Axios с базовой аутентификацией, но я продолжаю возвращать код состояния 401. Мой код работает, если я делаю запрос по почте, поэтому я не знаю, что я делаю здесь неправильно.

Код моего бэкенда:

app.get('/api/find-user', (req, res) => {
    const username = req.body.username;
    axios.get('my-url', username, {
        auth:{
            username: 'my-username',
            password: 'my-password'
        }
    })
    .then(resp => {
        res.json({resp});
    })
    .catch(error => {
        res.send(error.response.status);
    })
});

Код моего внешнего интерфейса:

findUser(user){
    const username = user;
    axios.get('/api/find-user', {username})
        .then(resp => {
            console.log(resp);
        })
        .catch(error => {
            console.log(error)
        })
}

Опять же, когда я делаю сообщение для создания нового пользователя, оно работает, но когда я делаю GET-запрос, оно постоянно говорит, что я не авторизован.

Редактировать: Если вы хотите понизить голосование, будьте достаточно взрослым, чтобы объяснить почему.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вам необходимо сделать:

const usernamePasswordBuffer = Buffer.from(username + ':' + password);
const base64data = usernamePasswordBuffer.toString('base64');
const axiosObject = axios.create({
    headers: {
        'Content-Type': 'application/json',
        'Authorization': `Basic ${base64data}`,
    }
});

Поскольку Axios требуется, чтобы аутентификация была «зашифрована» с использованием имени пользователя и пароля.

0 голосов
/ 09 ноября 2018

Здесь довольно много потенциальных причин. Я думаю, что было бы полезно указать, к какому API вы пытаетесь получить доступ. Например:

  • вам определенно предоставлен доступ READ для вашей учетной записи на сервере API?
  • ваш запрос POST не использует пароль, поэтому ваш пароль определенно верен для GET?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...