Я использую Angular 6 и кодирую API, который использует маркеры доступа в качестве механизма аутентификации.По сути, я установил токен Авторизационного канала на заголовках, используя перехватчик, а затем отправил его как запрос.
Сначала я хранил токен доступа в локальном хранилище и получал его оттуда, чтобы установить его в качестве носителя авторизации.,Тем не менее, я сейчас использую IndexDB, так как я начну работать с работниками сферы обслуживания и PWA.Поэтому я сейчас использую асинхронную библиотеку @ngx-pwa/local-storage
, которая оборачивает все в наблюдаемые.
Теперь я не знаю, как вернуть значение вне функции, потому что мне нужно получить токен синхронным образом перед отправкой следующего дескриптора перехвата.Каков наилучший способ сделать это?
this.localStorage.getItem('access_token').subscribe(token => {
const cloned = req.clone({
headers: req.headers.set('Authorization', 'Bearer ' + token)
});
return next.handle(cloned); // does not work
});