У меня есть приложение ASP.NET
OWIN
(аутентификация выполняется через Active Directory), которое построено как SPA
с vue.js
и vue-router
.Это означает, что приложение, естественно, имеет много AJAX
входящих и выходящих.Проблема в том, что иногда OWIN
аутентификация истекает, и мне нужно повторно пройти аутентификацию в середине сеанса (имейте в виду, что это может означать повторный запрос учетных данных пользователя).Конечно, все перенаправления OWIN
находятся вне контекста vue.js
, поэтому я теряю все состояние, и после успешной аутентификации он перенаправляет обратно на ~
.
Я хочу сделать это более или менее прозрачным дляпользователь, это означает, что если пользователь находился в процессе редактирования данных, ему необходимо выполнить повторную аутентификацию, не теряя эти данные, и улучшить состояние всего представления.
Я также избегаю слишком больших изменений настройки OWIN
, поскольку он сложен, и я не до конца его понимаю.
Подход, о котором я сейчас думаю, следующий:
- Один из запросов AJAX завершается неудачно с 401, что означает, чтонам нужно пройти повторную аутентификацию.
- Сохранить все состояние просмотра, включая текущий маршрут в cookie (для каждого представления vue.js будет отдельная логика)
- Перенаправить на
~
дляOWIN
для аутентификации. - Когда
~
загружается обратно после успешной аутентификации, извлеките cookie и очистите его. - Восстановите маршрут из cookie и заполните представлениесостояние для восстановленного представления.
Я думаю, что это должно работать, но это звучит сложно и потенциально опасно.Какие проблемы мне следует ожидать и как лучше справиться с этой ситуацией?Также, может быть, уже есть решения для управления государством, которые бы мне помогли?