Выход пользователя
Есть несколько вариации организации данного процесса. Процессы схожи, но есть особенности.
Независимый выход пользователя
Особенности:
- простая интеграция
- подойдет для проектов с необязательной авторизацией
- не связывает сессии авторизаций в проектах
Клиентское приложение при авторизации пользователя хранит его токен доступа в сессии/куки. Во время выхода пользователя из учетной записи на стороне клиентского приложения необходимо прервать и удалит сессию/куки вместе с токеном доступа.
Частично связанный выход пользователя
Особенности:
- средняя сложность интеграция
- подойдет для закрытых проектов
- частично связывает сессии авторизаций в проектах
Клиентское приложение при авторизации пользователя хранит его токен доступа в сессии/куки. Во время выхода пользователя из учетной записи на стороне клиентского приложения необходимо прервать и удалит сессию/куки вместе с токеном доступа. Далее перенаправить пользователя на стандартную авторизацию по oauth2 добавив параметр prompt=login. Сервис авторизации разлогинит пользователя на своей стороне и выведет пользователю форму авторизации. После авторизации пользователь вернется в приложение клиента.
Независимый выход пользователя с окном подтверждения
Особенности:
- средняя сложность интеграция
- подойдет для закрытых проектов
- не связывает сессии авторизаций в проектах
- добавляет вариативность для пользователя
Клиентское приложение при авторизации пользователя хранит его токен доступа в сессии/куки. Во время выхода пользователя из учетной записи на стороне клиентского приложения необходимо прервать и удалит сессию/куки вместе с токеном доступа. Далее перенаправить пользователя на стандартную авторизацию по oAuth2 добавив параметр prompt=consent. Сервис авторизации для уже авторизованного пользователя выведет окно подтверждения доступа (даже если подтверждение было выдано ранее). На странице подтверждения доступа пользователь может выбрать нужное ему действие: продолжить или выйти для выбора другой учётной записи. После авторизации пользователь вернется в приложение клиента.
Пример процесса выхода по шагам
- Пользователь в клиентском приложении нажимает кнопку "выйти".
- Клиентское приложение очищает сессию пользователя.
- Клиентское приложение запоминает локальную страницу для обратного редиректа пользователя.
- Клиентское приложение редиректит пользователя на страницу с базовым процессом oAuth2 авторизации с указанием нужного значения для параметра prompt (login, consent).
- Сервис авторизации обрабатывает запрос, производит необходимые операции.
- Пользователь повторно авторизируется и попадает обратно в клиентское приложение.
- Клиентское приложение производит авторизацию по oauth2 и возвращает пользователя на запомненную страницу (шаг 3).
При обычной авторизации promt без надобности отправлять не нужно.