Мое веб-приложение настроено следующим образом:
- Сервер ресурсов с API-интерфейсами (использует Spring Security)
- Сервер авторизации (Spring Security OAuth), на котором размещена страница формы входа
- Клиент SPA (библиотека Angular 6 / routing / angular-oauth-oidc)
- Я использую неявный поток
Я пытаюсь найти лучший способ реализовать поток входа в систему. Как у меня сейчас, когда пользователь пытается получить доступ к защищенному маршруту и не имеет токена, он перенаправляется в форму входа на сервер авторизации (через сторож). Если вход выполнен успешно, браузер перенаправляет обратно на защищенный маршрут углового приложения. Страж разрешает доступ, поскольку у пользователя теперь есть токен.
Проблема в том, что я пытаюсь понять, что мое угловое приложение дважды: один раз перед тем, как я вошел в систему, и снова после. Современные браузеры будут кешировать фактические ресурсы SPA (.js, .html, .css. И т. Д.), Чтобы не было другого попадания на сервер. Но приложения Angular загружаются не тривиально, и в этом процессе SPA загружается дважды.
Есть ли способ сделать это так, чтобы приложение Angular загружалось только один раз?