【问题标题】:Google PHP API (google-api-php-client) - Always prompting for Offline access accessGoogle PHP API (google-api-php-client) - 总是提示离线访问权限
【发布时间】:2014-02-03 12:08:30
【问题描述】:

我有一个非常基本的 PHP 站点,我想使用他们提供的示例(以下是我的版本)对 Google Apps 使用 oauth2 身份验证,不断提示用户进行身份验证以允许我的应用离线访问他们的帐户,我不想要。

$this->gapps_api_client = new Google_Client();
// $this->gapps_api_client->setAccessType('online');
$this->gapps_api_client->setApplicationName( GAPPS_APPLICATION_NAME );
$this->gapps_api_client->setClientId( GAPPS_CLIENT_ID );
$this->gapps_api_client->setClientSecret( GAPPS_CLIENT_SECRET );
$this->gapps_api_client->setRedirectUri( GAPPS_REDIRECT_URI );

$this->oauth2 = new Google_Oauth2Service($this->gapps_api_client);

我一直在玩“setAccessType”,但没有值似乎对这种离线权限模式有影响。 我尝试将其注释掉,将其设置为“在线”、“离线”,没有任何区别。

在没有用户授予您的应用“离线访问”权限的情况下,还有其他人能够进行 oauth2 身份验证吗?

【问题讨论】:

    标签: php google-api-php-client


    【解决方案1】:

    如果您之前已授予应用访问权限,但应用要求再次登录(如果同意对话框被强制或类似情况),则通常会标记离线访问显示。这是由于增量身份验证 - 它试图隐藏以前授予的范围。

    要对此进行测试,请尝试使用 https://security.google.com/settings/security/permissions 撤消所有应用访问权限并重新登录。您应该看到完整的范围。

    如果这是问题所在,那么您的用户可能不会看到 - 当他们再次登录时,他们不应该看到同意对话框,除非您使用 prompt=force 或类似的。

    您可能还想查看使用 Google+ API 检索个人资料(这适用于所有帐户类型):https://developers.google.com/+/api/latest/people/get,并升级到最新版本的 PHP 库:https://github.com/google/google-api-php-client

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      相关资源
      最近更新 更多