Ошибка выхода из django-oauth-toolkit из-за того, что пользователь не запрашивает имя пользователя / пароль каждый раз - PullRequest
0 голосов
/ 06 марта 2019

Я не могу найти какую-либо информацию об этой проблеме в Интернете, поэтому собираюсь разместить ее здесь!

Я использую приложение внешнего интерфейса, которое перенаправляет на пользовательский auth_views.LoginView на сервер (django-oauth-toolkit) с client_id и т. Д. У меня все это работает. (Я использую неявное предоставление, кстати).

Проблема в том, что когда пользователь выходит из системы, я использую /o/revoke_token, который успешно удаляет токен из БД. Однако, когда пользователь оборачивается и снова входит в систему, он никогда не запрашивает у них имя пользователя / пароль. auth_views.LoginView даст 302 и перенаправит обратно во внешний интерфейс с действительным api_key.

Как я могу предотвратить это? Я хочу, чтобы пользователь КАЖДЫЙ ВРЕМЯ запрашивал на этой странице свое имя пользователя / пароль. Таким образом, они могут выйти из системы и войти в систему с другим пользователем, если это необходимо.

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

У меня была та же проблема, и если я не ошибаюсь, это потому, что вам действительно нужно выйти из системы.

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

0 голосов
/ 07 марта 2019

РЕДАКТИРОВАТЬ: Это не очень хорошее решение.Посмотрите на другой ответ, предоставленный ZaX.

Чтобы продолжить, я решил исправить это, просто установив SESSION_COOKIE_AGE на небольшое число, 3, чтобы разрешить вход в систему, но не сохранять сеанс пользователей.в живых.Это заставит их повторно ввести свое имя пользователя / пароль, но нет необходимости иметь сеанс для запроса от бэкэнда, если у вас есть токен доступа.

...