Как вы учитываете перенаправления на стороне сервера в оболочке приложения?
Я работаю над реализацией сервисного работника, который кэширует и обслуживает оболочку приложения для определенных маршрутов на моем сайте.
Я сталкиваюсь с проблемой в том, что маршрут может иногда (на основе, скажем, параметра запроса) вызвать перенаправление на стороне сервера. Однако, как только пользователь получает доступ к оболочке приложения, он больше никогда не попадает на сервер, и перенаправления не происходят.
Это похоже на проблему, присущую оболочкам приложений. Нужны мысли и рекомендации по обработке подобных случаев.
Дополнительные детали для ясности:
- Хиты пользователя
https://www.example.com
- Сервисный работник установлен, впоследствии обслуживая оболочку приложения для
/
маршрут - Некоторое время спустя пользователь снова заходит на сайт, но его учетная запись была помечена для проверки безопасности. Обычно сервер обрабатывает это перенаправление, перенаправляя пользователя, например, на
https://www.example.com/account/security
- Однако из-за наличия оболочки приложения сервер не имеет возможности выполнить такое перенаправление.
1 ответ
(Продвижение этого в разделе комментариев. Это не единственный возможный подход, но в зависимости от того, насколько вам удобно работать с логикой перенаправления через клиентский JavaScript, он должен выполнить то, что вы описываете.)
В этом случае кажется, что вам нужно будет периодически запрашивать у клиента сервер (возможно, каждый раз, когда происходит навигация по API History) с помощью облегченной функции fetch(), есть ли причина для перехода на специальную страницу. И тогда, если сервер отвечает да, и вам нужно перенаправить, вы можете явно установить location
на URL проверки безопасности, который должен быть занесен в черный список из навигации по оболочке App.