У меня есть несколько приложений, которые подключаются к центральному серверу OAuth2 (это единственный метод входа в систему). Когда пользователь нажимает Выйти , я хочу, чтобы он вышел из всех приложений и OAuth-сервера.
На данный момент все приложения Django, но это может измениться, поэтому я ищу наиболее кросс-фреймворковый способ сделать это. Я также должен помнить, что все приложения могут обрабатывать сессии по-разному (некоторые на стороне сервера, некоторые на стороне клиента).
Все выходы из системы должны обрабатываться POST-запросами, как рекомендует хорошая практика.
Стратегия, которую я имею в виду:
- В приложении пользователь нажимает Выйти
- Эта ссылка Выход из системы указывает на страницу выхода из системы на сервере OAuth, на которой POST-запрос к
/logout
выдается немедленно (или после обратного отсчета).
- Сеанс прерван на сервере OAuth, и пользователь вышел из него.
- A
?next=...
параметр перенаправляет пользователя обратно в приложение A.
- Приложение получает статус пользователя с сервера OAuth (на стороне сервера или клиента): если выйти из сервера OAuth, то также выйти из приложения .
В новых приложениях просто необходимо реализовать этот механизм вытягивания вместе со ссылкой выхода из системы, указывающей на страницу выхода из сервера OAuth, поэтому на сервере OAuth нечего настраивать для новых приложений.
Я что-то пропустил?