Лучший способ вывести пользователя из нескольких собственных веб-сайтов? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть несколько приложений, которые подключаются к центральному серверу OAuth2 (это единственный метод входа в систему). Когда пользователь нажимает Выйти , я хочу, чтобы он вышел из всех приложений и OAuth-сервера.

На данный момент все приложения Django, но это может измениться, поэтому я ищу наиболее кросс-фреймворковый способ сделать это. Я также должен помнить, что все приложения могут обрабатывать сессии по-разному (некоторые на стороне сервера, некоторые на стороне клиента).

Все выходы из системы должны обрабатываться POST-запросами, как рекомендует хорошая практика.

Стратегия, которую я имею в виду:

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

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

Я что-то пропустил?

1 Ответ

0 голосов
/ 09 ноября 2018

вы можете следовать этому черновику, https://openid.net/specs/openid-connect-session-1_0.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...