Я хотел бы добавить токен аутентификации в заголовок http-запроса каждый раз при отправке HTTP-запроса и если авторизация не удалась, я хочу перенаправить пользователя на логин. Должен ли я украсить драйвер Http или есть лучший способ сделать это?Как обращаться с токеном авторизации
Я пришел с решением, которое украшает http-драйвер. Но я не уверен, что это правильный способ сделать это. Вот код, я до сих пор написал:
import Rx from 'rx';
import {makeHTTPDriver} from '@cycle/http';
function makeSecureHTTPDriver({eager = false} = {eager: false}) {
return function secureHTTPDriver(request$) {
const httpDriver = makeHTTPDriver(eager);
const securedRequest$ = request$
.map(request => {
const token = localStorage.getItem('token');
if (token) {
request.headers = request.headers || {};
request.headers['X-AUTH-TOKEN'] = token;
}
return request;
});
const response$ = httpDriver(securedRequest$);
//todo: check response and if it fails, redirect to the login page
return response$;
}
}
export default makeSecureHTTPDriver;
Вот код, как я использую makeSecureHttpDriver
const drivers = {
DOM: makeDOMDriver('#app'),
HTTP: makeSecureHttpDriver()
};