Как сделать вызов API, передавая basi c auth в ax ios в ответ - PullRequest
0 голосов
/ 23 марта 2020

У меня есть API, в котором для входа это работает так. Чтобы сделать вызов API, я должен добавить авторизацию basic auth вот так.

Adding auth

И тело

passing body

Но проблема в том, что когда я делаю api-запрос через ax ios, он всегда выдает ошибку ответа, подобную этой

Error: "Request failed with status code 401"
    createError createError.js:17
    settle settle.js:19
    handleLoad xhr.js:60

Я сделал запрос что-то вроде этого.

//TODO: AUTH Actions
export const login = (username, password) => (dispatch) => {
    //User Loading:
    dispatch({ type: USER_LOADING });
    //Make API Call here

    console.log('featch adata', data);
    axios.post('https://api.smartocart.com/oauth/token', {
        data: {
            username: username,
            password: password,
            grant_type: 'password',
        },
        auth: {
            username: 'topseller',
            password: 'topseller'
        }
    })
        .then((res) => {
            console.log('Then response', res)
        }).catch(err => {
            console.log(err)
        })
    // console.log('Action login', username, password);

}

1 Ответ

0 голосов
/ 23 марта 2020

Как уже упоминалось, попробуйте объект конфигурации в качестве третьего параметра функции .post, тело сообщения запроса должно быть вторым параметром. https://github.com/axios/axios#axiosposturl -data-config-1

Вы пытаетесь что-то вроде axios.post(url, config), но такой функции там нет. Вы должны использовать axios.post(url, data, config)

axios.post('https://api.smartocart.com/oauth/token', 
         {
            username: username,
            password: password,
            grant_type: 'password',
         }, 
         {
           auth: {
             username: 'topseller',
             password: 'topseller'
           }
         }
        ).then((res) => {
            console.log('Then response', res)
        }).catch(err => {
            console.log(err)
        })
...