Django OAuth Toolkit как выйти из системы - PullRequest
0 голосов
/ 09 мая 2019

Я установил Django OAuth Toolkit в своем проекте, где сервер авторизации отделен от сервера приложений (например, accounts.example.com и app.example.com). Сервер приложений перенаправляет на сервер учетных записей, используя поток авторизации; пользователь вводит учетные данные для входа на сервер аутентификации, затем сервер аутентификации перенаправляет пользователя обратно в приложение; чтобы приложение могло получать токены.

Вышеуказанный поток в настоящее время работает как ожидалось. Если я не нажму явным образом Выйти из системы, а приложение выйдет из системы (например, истек сеанс или куки-файлы браузера будут удалены), описанный выше процесс будет выполнен снова, и учетные данные не понадобятся, поскольку сервер аутентификации все еще знает, кто подписал его.

Однако у меня возникают проблемы с явным выходом пользователя из приложения. Если пользователь явно нажимает на кнопку входа, во-первых, токен должен быть аннулирован, а во-вторых, сервер аутентификации должен выйти. Как правильно добиться этого? Насколько мне известно, я не смогу использовать Ajax для выхода из системы, поскольку сеанс должен быть уничтожен на сервере аутентификации.

Итак, я думал о перенаправлении пользователя на accounts.example.com/signout?token=${accessToken}&client_id=${clientID}. Однако я не уверен, что это правильный подход. Это как эти запросы на выход работают с OAuth? Означает ли это, что когда я выхожу из системы, мне всегда нужно предоставлять токен доступа и идентификатор клиента?

...