Как заставить пароль запрашивать при повторной аутентификации с Google в PHP? - PullRequest
0 голосов
/ 03 мая 2019

Я реализовал Google OAuth2 на своем PHP-сайте, и вход в систему работает нормально.Но после выхода из системы пользователям больше не нужно вводить пароль для своей учетной записи Google;они могут просто щелкнуть свою учетную запись Google в появившемся списке и вернуться обратно. Разве это не угроза безопасности?

Это базовая установка PHP 7.4 с google-api-php-clientверсия 2.2.2.

Я выхожу из системы с помощью

unset($_SESSION["access_token"]);
$gClient->revokeToken();
session_destroy();

, поскольку я сохраняю токен доступа в переменной сеанса.

Я ожидаю, что процесс входа в систему - введитеимя учетной записи Google - следующий - введите пароль - следующий - будет одинаковым, если вы входите в первый раз или для последующих входов.Но вам не предложат ввести пароль после первого раза.

Я попытался включить скрытый iframe, содержащий страницу выхода из Google, например:

<iframe id="logoutframe" src="https://accounts.google.com/logout" style="display: none"></iframe>

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

1 Ответ

1 голос
/ 03 мая 2019

Вы уже прошли аутентификацию в Google, поэтому вам не нужно повторно вводить пароль.

Принудительный выход из системы - как вы достигли с помощью iframe - заставил вас выйти из учетной записи Google, что привело к неудобствам, с которыми вы столкнулись.

Как только ваше приложение получит доступ к вашей учетной записи Google и у вас будет активное состояние аутентификации Google, вам не будет предложено ввести пароль. Так работает и работает OAuth2.

...