Выход пользователя

Есть несколько вариации организации данного процесса. Процессы схожи, но есть особенности.

Особенности:

  • средняя сложность интеграция
  • подойдет всем проектам
  • завершает сессии авторизации во всех связанных с провайдером проектов

Клиентское приложение при авторизации пользователя хранит его токен доступа в сессии/куки. Во время выхода пользователя из учетной записи на стороне клиентского приложения необходимо перенаправить пользователя на специальный эндпоинт выхода. Сервис авторизации для уже авторизованного пользователя выведет окно подтверждения. На странице подтверждения пользователь может выбрать нужное ему действие: продолжить или отмена для возврата. После любого выбора пользователь вернется в приложение клиента. Если выход подтверждается пользователем, то клиентское приложение должно прервать и удалить сессию/куки вместе с токеном доступа.

Подробнее об интеграции см. в отдельной статье.

Особенности:

  • средняя сложность интеграция
  • подойдет для закрытых проектов
  • частично связывает сессии авторизаций в проектах

Клиентское приложение при авторизации пользователя хранит его токен доступа в сессии/куки. Во время выхода пользователя из учетной записи на стороне клиентского приложения необходимо прервать и удалить сессию/куки вместе с токеном доступа. Далее перенаправить пользователя на стандартную авторизацию по oauth2 добавив параметр prompt=login. Сервис авторизации разлогинит пользователя на своей стороне и выведет пользователю форму авторизации. После авторизации пользователь вернется в приложение клиента.

Особенности:

  • простая интеграция
  • подойдет для проектов с необязательной авторизацией
  • не связывает сессии авторизаций в проектах

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

Особенности:

  • средняя сложность интеграция
  • подойдет для закрытых проектов
  • не связывает сессии авторизаций в проектах
  • добавляет вариативность для пользователя

Клиентское приложение при авторизации пользователя хранит его токен доступа в сессии/куки. Во время выхода пользователя из учетной записи на стороне клиентского приложения необходимо прервать и удалить сессию/куки вместе с токеном доступа. Далее перенаправить пользователя на стандартную авторизацию по oAuth2 добавив параметр prompt=consent. Сервис авторизации для уже авторизованного пользователя выведет окно подтверждения доступа (даже если подтверждение было выдано ранее). На странице подтверждения доступа пользователь может выбрать нужное ему действие: продолжить или выйти для выбора другой учётной записи. После авторизации пользователь вернется в приложение клиента.

  1. Пользователь в клиентском приложении нажимает кнопку "выйти".
  2. Клиентское приложение очищает сессию пользователя.
  3. Клиентское приложение запоминает локальную страницу для обратного редиректа пользователя.
  4. Клиентское приложение редиректит пользователя на страницу с базовым процессом oAuth2 авторизации с указанием нужного значения для параметра prompt (login, consent).
  5. Сервис авторизации обрабатывает запрос, производит необходимые операции.
  6. Пользователь повторно авторизируется и попадает обратно в клиентское приложение.
  7. Клиентское приложение производит авторизацию по oauth2 и возвращает пользователя на запомненную страницу (шаг 3).

При обычной авторизации prompt без надобности отправлять не нужно.