Как выйти из системы FOSOAuthServerBundle или, лучше, отозвать токен

Я использую Symfony2.0 и FOSOAuthServerBundle, который реализует OAuth2, для управления доступом моих клиентов из приложений к моему PHP-серверу.

Все работает отлично, любая генерация токенов, обновление и т. Д. И т. Д.

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

Типичное поведение и пока все идеально.

Теперь мне нужно разработать кнопку «Выход» в моем приложении, чтобы аннулировать токен этого пользователя и избежать использования для него любого refresh_token. Типа отзыва его токена и / или учетных данных. Другими словами, действительно имитируйте выход из системы с сервера, заставляя пользователя повторно вводить свои учетные данные в следующий раз, когда он войдет в приложение.

Что OAuth2 настраивает для этого? Это стандартное поведение с собственным методом API? Или я должен переопределить любое поведение, чтобы получить его?


person ElPiter    schedule 01.03.2014    source источник


Ответы (2)



По определению oAuth2 является БЕЗГОСУДАРСТВЕННЫМ, поэтому нет смысла выходить из системы с сервера oauth. Для этого просто уничтожьте токен доступа в приложении на стороне клиента (здесь мы предполагаем, что у вас есть контроль над приложением).

Но когда к вашему серверу подключено стороннее приложение, вы можете принудительно выполнить механизм выхода, удалив все токены доступа, предоставленные вашим сервером этому пользователю клиентского приложения. Итак, когда приложение хочет использовать один из уничтоженных токенов, оно получит 401 ОТВЕТ HTTP (предоставленный токен доступа недействителен). Обратите внимание, что если приложение сохранило пароль пользователя в своем локальном хранилище, оно может автоматически войти на ваш сервер, не прося пользователя ввести свой пароль. поэтому уничтожение токенов доступа на стороне сервера не является надежным методом.

person skonsoft    schedule 04.08.2015