在PHP中通过Google重新验证时如何强制输入密码提示?

时间:2019-05-03 08:37:08

标签: php security oauth google-api-php-client

我已经在我的PHP网站上实现了Google OAuth2,并且登录正常。但是,注销后,用户不再需要输入其Google帐户的密码;他们只需在出现的列表上单击其Google帐户,然后他们就会重新登录。这不是安全隐患吗?

这是使用google-api-php-client版本2.2.2的基本PHP 7.4设置。

我使用以下方式注销用户

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

因为我将访问令牌存储在会话变量中。

我希望登录过程-首次登录或以后登录时,输入Google帐户名-下一步-输入密码-下一步-相同。但是,第一次后您不会被提示输入密码。

我尝试添加一个包含Google注销页面的隐藏iframe,如下所示:

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

但是那完全让我退出了-也在其他浏览器标签中的其他网站上,我觉得很不方便。

1 个答案:

答案 0 :(得分:1)

您已经通过Google身份验证,因此,您不必重新输入密码。

通过iframe实现的强制退出导致您退出Google帐户,这给您带来了不便。

一旦您的应用程序可以访问您的Google帐户,并且您处于有效的Google身份验证状态,系统将不会提示您输入密码。这是OAuth2的工作方式,也是设计使然。