Google OAuth 2.0 在用户 refuses/cancel 同意屏幕时重定向 URL
Google OAuth 2.0 redirect URL when user refuses/cancel consent screen
我正在将我的 PHP 应用程序上的 使用 Google 登录从旧的现已弃用的 OpenID 迁移到新的 OAuth 2.0。
我只需要用户的电子邮件地址,这样我就可以注册或登录他。一切都按预期工作,但我注意到如果用户拒绝同意屏幕(使用 Cancel 按钮,白色的)再次显示同意屏幕。 有没有一种方法可以在用户拒绝同意屏幕时指定重定向URL,以便我可以向他显示自定义消息?
我的代码是:
$client = new Google_Client();
$client->setAuthConfig(Config::$GOOGLE_API_AUTH_CONFIG_JSON);
$client->addScope(Google_Service_Oauth2::USERINFO_EMAIL);
$client->setRedirectUri(Config::$WEBSITE_URL . 'index.php?page=login&action=login');
if (!isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
$client->authenticate($_GET['code']);
$oauth2_service = new Google_Service_Oauth2($client);
UserLogin::get()->signupOrLogin($oauth2_service->userinfo->get()->getEmail());
}
您不能指定另一个 URL,但您可以在代码中检查查询字符串上的 "error" 参数 - 如果用户取消,这将被设置。在 https://developers.google.com/accounts/docs/OAuth2WebServer#handlingtheresponse
上查看有关处理响应的更多信息
我正在将我的 PHP 应用程序上的 使用 Google 登录从旧的现已弃用的 OpenID 迁移到新的 OAuth 2.0。
我只需要用户的电子邮件地址,这样我就可以注册或登录他。一切都按预期工作,但我注意到如果用户拒绝同意屏幕(使用 Cancel 按钮,白色的)再次显示同意屏幕。 有没有一种方法可以在用户拒绝同意屏幕时指定重定向URL,以便我可以向他显示自定义消息?
我的代码是:
$client = new Google_Client();
$client->setAuthConfig(Config::$GOOGLE_API_AUTH_CONFIG_JSON);
$client->addScope(Google_Service_Oauth2::USERINFO_EMAIL);
$client->setRedirectUri(Config::$WEBSITE_URL . 'index.php?page=login&action=login');
if (!isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
$client->authenticate($_GET['code']);
$oauth2_service = new Google_Service_Oauth2($client);
UserLogin::get()->signupOrLogin($oauth2_service->userinfo->get()->getEmail());
}
您不能指定另一个 URL,但您可以在代码中检查查询字符串上的 "error" 参数 - 如果用户取消,这将被设置。在 https://developers.google.com/accounts/docs/OAuth2WebServer#handlingtheresponse
上查看有关处理响应的更多信息