Как сделать ax ios .get, когда URL защищен паролем в реагировать родной? - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь сделать axios.get. Когда я помещаю URL в браузер и нажимаю Enter browser, введите имя пользователя и пароль. Но я не знаю, как установить пароль и имя пользователя в заголовке ax ios в методе get. Пользовательский интерфейс Swagger: http://api.myslambook.in/swagger/#

Это мой код:

import axios from 'axios';
import base64 from 'react-native-base64'

export function FriendRequests ( ) {

    state = {
        serverData: [],
    };

    const tok = 'myusername:mypassword';
    const hash = base64.encode(tok);
    const Basic = 'Basic ' + hash;

    axios.get('http://api.myslambook.in/users', {headers : { 'Authorization' : Basic }})
    .then(res => {
        const serverData = res.data;
        this.setState({ serverData });
    })
    .catch(err => console.log(err));
}

Я получаю эту ошибку в консоли:

Request failed with status code 401. 

Может кто-нибудь мне помочь? Заранее спасибо.

1 Ответ

0 голосов
/ 07 февраля 2020

Для базовой аутентификации c можно использовать объект auth:

axios.get('http://api.myslambook.in/users', {
    auth: {
        username: 'janedoe',
        password: 's00pers3cret'
    }
}).then(res => {
    const serverData = res.data;
    this.setState({serverData});
}).catch(err => console.log(err));

, чтобы исправить ошибку Can't find variable: btoa:

npm i -S base-64

и добавить следующее к index.js:

import {decode, encode} from 'base-64'

if (!global.btoa) {
    global.btoa = encode;
}

if (!global.atob) {
    global.atob = decode;
}

Оформить документы: https://github.com/axios/axios#request -конфиг

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