2016-03-15 2 views
1

Не удалось найти документацию по этому вопросу, поэтому, прежде чем я углубляюсь в код, кто-нибудь знает, как использовать базовую аутентификацию при выполнении запроса REST с использованием 'fetch' (https://github.com/github/fetch) ,Базовая аутентификация (или любая аутентификация) с помощью выборки

Просто попробовал следующую строку, но заголовок не был установлен в запросе:

fetch('http://localhost:8080/timeEntry', { 
     mode: 'no-cors', 
     headers: { 'Authorization': 'Basic YW5kcmVhczpzZWxlbndhbGw=' } 
    }) 
    .then(checkStatus) 
    .then(parseJSON) 
    .then(function(activities) { 
     console.log('request succeeded with JSON response', data); 
     dispatch(activitiesFetched(activities, null)); 
    }).catch(function(error) { 
     console.log('request failed', error); 
     dispatch(activitiesFetched(null, error)); 
    }); 

имя пользователя и пароль моя первая и фамилия, используя curl это работает.

Если я положил { 'Accept' : 'application/test' } Принятие установлено, только не Authorization ... странно.

Только для меня возможность продолжить Я добавил credentials: 'include', что заставляет браузер запрашивать имя пользователя и пароль, которые используются для связи с бэкэнд REST. Просто для тестирования, используйте OAuth дальше.

fetch('http://localhost:8080/timeEntry', { 
     mode: 'no-cors', 
     credentials: 'include' 
    }) 
    .then(checkStatus) 
    .then(parseJSON) 
    .then(function(activities) { 
     console.log('request succeeded with JSON response', data); 
     dispatch(activitiesFetched(activities, null)); 
    }).catch(function(error) { 
     console.log('request failed', error); 
     dispatch(activitiesFetched(null, error)); 
    }); 
+0

Что именно вы подразумеваете под «аутентификацией»? Что вы пытаетесь сделать? – Pointy

+0

Я использую Spring Boot, чтобы открыть REST api, и для этого требуется базовая аутентификация, поскольку я установил ее прямо сейчас. В принципе, я хочу сделать «Авторизация: базовый QWxhZGRpbjpPcGVuU2VzYW1l» ... но перед отправкой заголовков я просто хотел проверить, была ли функциональность встроена в apetch. –

+1

Насколько я помню, базовый auth просто устанавливает заголовки, поэтому он должен быть таким же простым, как добавление некоторых к объекту, который вы передаете функции. – JCOC611

ответ

0

Поскольку это выглядит как библиотеки вы используете это polyfill для Fetch API, я буду отрабатывать в предположении, что синтаксис должен нести через а.

Образцы, которые я нашел на странице Mozilla, показывают, что fetch метод подписи fetch('API_ENDPOINT', OBJECT) где object выглядит следующим образом:

myHeaders = new Headers({ 
    "Authorization": "Basic YW5kcmVhczpzZWxlbndhbGw=" 
}); 

var obj = { 
    method: 'GET', 
    headers: myHeaders 
}) 

Так метод становится:

fetch('http://localhost:8080/timeEntry', obj) 
    .then(checkStatus) 
    .then(parseJSON)... 

Я не проверял этот код, но это похоже на то, что я смог найти. Надеюсь, это указывает на то, что вы в правильном направлении.

Смежные вопросы