在 PHP 中使用 Google 重新验证时如何强制提示密码?
How to force password prompt when re-authenticating with Google in PHP?
我已经在我的 PHP 网站上实施了 Google OAuth2,登录工作正常。但退出后,用户不再需要输入其 Google 帐户的密码;他们只需在出现的列表中单击他们的 Google 帐户,他们就会返回。这不是安全风险吗?
这是一个基本的 PHP 7.4 设置 google-api-php-客户端版本 2.2.2.
我使用
注销用户
unset($_SESSION["access_token"]);
$gClient->revokeToken();
session_destroy();
因为我将访问令牌存储在会话变量中。
我希望登录过程-输入google账户名-下一步-输入密码-下一步-无论您是第一次登录还是后续登录都是一样的。但是在第一次之后没有提示你输入密码。
我尝试包含一个包含 google 注销页面的隐藏 iframe,如下所示:
<iframe id="logoutframe" src="https://accounts.google.com/logout" style="display: none"></iframe>
但这让我完全退出 - 在其他浏览器选项卡的其他网站上也是如此,我发现这很不方便。
您已经通过 Google 的身份验证,因此您不必重新输入密码。
强制注销 - 正如您使用 iframe
实现的那样 - 导致您注销 Google 帐户,这给您带来了不便。
一旦您的应用程序获得访问您的 Google 帐户的权限,并且您处于活动的 Google 身份验证状态,系统将不会提示您输入密码。这就是 OAuth2 的工作方式,也是设计使然。
我已经在我的 PHP 网站上实施了 Google OAuth2,登录工作正常。但退出后,用户不再需要输入其 Google 帐户的密码;他们只需在出现的列表中单击他们的 Google 帐户,他们就会返回。这不是安全风险吗?
这是一个基本的 PHP 7.4 设置 google-api-php-客户端版本 2.2.2.
我使用
注销用户unset($_SESSION["access_token"]);
$gClient->revokeToken();
session_destroy();
因为我将访问令牌存储在会话变量中。
我希望登录过程-输入google账户名-下一步-输入密码-下一步-无论您是第一次登录还是后续登录都是一样的。但是在第一次之后没有提示你输入密码。
我尝试包含一个包含 google 注销页面的隐藏 iframe,如下所示:
<iframe id="logoutframe" src="https://accounts.google.com/logout" style="display: none"></iframe>
但这让我完全退出 - 在其他浏览器选项卡的其他网站上也是如此,我发现这很不方便。
您已经通过 Google 的身份验证,因此您不必重新输入密码。
强制注销 - 正如您使用 iframe
实现的那样 - 导致您注销 Google 帐户,这给您带来了不便。
一旦您的应用程序获得访问您的 Google 帐户的权限,并且您处于活动的 Google 身份验证状态,系统将不会提示您输入密码。这就是 OAuth2 的工作方式,也是设计使然。