WorkBox Service Worker не регистрируется с HTTP 403 Запрещенная ошибка - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть промежуточная среда на облачной платформе, которая требует, чтобы пользователи установили токен в качестве заголовка авторизации. Этот токен передается в большинстве выборок, но не получается, когда мое приложение пытается зарегистрировать работника службы. js. Сам работник сервиса - это работник сервиса, скомпилированный WorkBox со стратегией кэширования по умолчанию. Работник базовой службы (с использованием стратегии внедрения) выглядит следующим образом:

import { precacheAndRoute } from 'workbox-precaching';

self.addEventListener('install', event => {
    console.log("Development Service Worker was succesfully installed");
});

precacheAndRoute(self.__WB_MANIFEST);

Стратегия кэширования WorkBox (по умолчанию используется из внешнего пакета, но может быть перезаписана):

{
  runtimeCaching: [
    {
      urlPattern: /^https?.*/,
      handler: 'NetworkFirst',
      options: {
        cacheName: 'offlineCache',
        expiration: {
          maxEntries: 200
        }
      }
    }
  ]
}

Ошибка возвращается:

TypeError: Failed to register a ServiceWorker for scope ('https://staging.example.com/') with script ('https://staging.example.com/service-worker.js'): A bad HTTP response code (403) was received when fetching the script.

Я предполагаю, что функция navigator.serviceWorker.register не передается по заголовку авторизации и, таким образом, получает запрещенный код 403. Облачная среда требует, чтобы заголовок был установлен для того, чтобы даже попасть на мой сервер, поэтому я не могу решить эту проблему на стороне сервера.

У кого-нибудь есть решение для этого?

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