Как вы учитываете перенаправления на стороне сервера в оболочке приложения?

Я работаю над реализацией сервисного работника, который кэширует и обслуживает оболочку приложения для определенных маршрутов на моем сайте.

Я сталкиваюсь с проблемой в том, что маршрут может иногда (на основе, скажем, параметра запроса) вызвать перенаправление на стороне сервера. Однако, как только пользователь получает доступ к оболочке приложения, он больше никогда не попадает на сервер, и перенаправления не происходят.

Это похоже на проблему, присущую оболочкам приложений. Нужны мысли и рекомендации по обработке подобных случаев.


Дополнительные детали для ясности:

  1. Хиты пользователя https://www.example.com
  2. Сервисный работник установлен, впоследствии обслуживая оболочку приложения для / маршрут
  3. Некоторое время спустя пользователь снова заходит на сайт, но его учетная запись была помечена для проверки безопасности. Обычно сервер обрабатывает это перенаправление, перенаправляя пользователя, например, на https://www.example.com/account/security
  4. Однако из-за наличия оболочки приложения сервер не имеет возможности выполнить такое перенаправление.

1 ответ

(Продвижение этого в разделе комментариев. Это не единственный возможный подход, но в зависимости от того, насколько вам удобно работать с логикой перенаправления через клиентский JavaScript, он должен выполнить то, что вы описываете.)

В этом случае кажется, что вам нужно будет периодически запрашивать у клиента сервер (возможно, каждый раз, когда происходит навигация по API History) с помощью облегченной функции fetch(), есть ли причина для перехода на специальную страницу. И тогда, если сервер отвечает да, и вам нужно перенаправить, вы можете явно установить location на URL проверки безопасности, который должен быть занесен в черный список из навигации по оболочке App.

Другие вопросы по тегам