Как получить доступ к локальному хранилищу, используя сервисные работники в угловых? - PullRequest
0 голосов
/ 09 октября 2018

Хорошо, теперь я работаю над Angular 6 webApp, и сначала он не в сети.Я могу настроить полнофункциональный сервисный работник, который может получать и хранить запросы и ответы, а что нет.Но в какой-то момент при регистрации события синхронизации мне потребовались токены обновления, которые хранятся в локальном хранилище моего webApp.Проблема заключается в том, что работникам сферы обслуживания не разрешен прямой доступ к локальному хранилищу. Это означает, что у меня нет доступа к токенам, находящимся в локальном хранилище. Как я могу использовать локальное хранилище в работнике службы, используя какой-либо API-интерфейс?другая стратегия для достижения того, что я хочу сделать (выполнить событие синхронизации, воспроизводя вызов выборки неудачных запросов и прикрепляя к нему обновленный токен, чтобы данные синхронизировались с надлежащей авторизацией).Я даже думал попробовать это с API postmessage (), но он не очень полезен, так как у меня есть только один работник, который работает без какого-либо вмешательства в угловое приложение.

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать IndexedDB для хранения токена в БД браузера.Он работает аналогично локальному хранилищу.

https://github.com/mozilla/localForage, если вам нужен более простой интерфейс для IndexedDB.

Вы можете импортировать библиотеку localForage в работника службы, используя importScripts, см.пример: https://github.com/marco-c/mercurius/blob/master/static/sw-push.js

...