Почему не работает этот sw-precache для исключения некоторых URL из кэширования в реагирующем сервисе? - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть приложение, использующее реагирование / экспресс. Я столкнулся с конфликтом с паспортной авторизацией через логин на фейсбуке. Похоже, что работник службы блокирует вызов «mysite.com/api/auth/facebook». Я также попытался обойти эту проблему, добавив двойную черту к этому URL-адресу, например, «mysite.com/__api/auth/facebook», который завершился первым шагом, но с помощью обратного вызова facebook (mysite.com/api/callback/facebook) не удалось. Если я также добавлю двойную черту для обратного вызова Facebook (mysite.com/__api/callback/facebook), я получу эту ошибку:

URL Blocked: This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings. Make sure Client and Web OAuth Login are on and add all your app domains as Valid OAuth Redirect URIs.

Итак, похоже, что я должен использовать sw-precache, как предлагается в других постах. Однако я попробовал эту конфигурацию sw-precache, и она мне не помогла.

// config/sw.js
module.exports = {
  staticFileGlobs: [
    'build/**/*.js',
    'build/**/*.css',
    'build/index.html'
  ],
  navigateFallback: '/index.html',
  navigateFallbackWhitelist: [/^\/api\/auth\/.*/],
  cacheId: 'my-magical-cache-machine'
}

Вот как я это построил:

"build": "react-scripts build && sw-precache --config=sw-precache.js && copyfiles -u 1 build/**/*.* prod",

Итак, почему у меня не работает навигационный список возврата?

UPDATE:

Я сам разобрался ... Сначала sw-precache устарел, поэтому я переключился на sw-precache-cra, затем я просто изменил по умолчанию navigateFallbackWhitelist на

navigateFallbackWhitelist: [ /^(?!\/api\/(auth|callback)\/).*/ ]

На самом деле, я изначально неправильно понял «белый список».

...