小编Moh*_*ssi的帖子

令牌中的段数错误(OAuth Google Api with php)

我有一个 php 应用程序,它使用 OAuth2 对用户的帐户进行身份验证。

直到昨天,一切都进展顺利。

但是今天,在不更改代码的情况下,当我尝试访问我的帐户时,并且在对我的谷歌帐户进行身份验证后,我获得了一个空白页面。

我调试代码,发现当 Google_Client 尝试 verifyIdToken 时崩溃,更准确地说是在函数 verifySignedJwtWithCerts 中,因为:$segments = explode(".", $jwt);找到 4 个段而不是 3 个段。

这是我的代码:

...
$client = new Google_Client();
$client->setClientId($clientId);
$client->setClientSecret($clientSecret);
$client->setRedirectUri($redirectUri);
$client->setScopes("email");

if(!isset($_GET['code']))
    header("Location: ".$client->createAuthUrl());
else
{
    $client->authenticate($_GET['code']);
    $_SESSION["access_token"] = $client->getAccessToken();


    if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
      $client->setAccessToken($_SESSION['access_token']);
    } else {
      $authUrl = $client->createAuthUrl();
    }

    $ticket = $client->verifyIdToken();
    if ($ticket) {
        $admin = $ticket->getAttributes();

    }
    $_SESSION["email"] = $admin["payload"]["email"];

    ...
Run Code Online (Sandbox Code Playgroud)

谁能提供解释吗?提前致谢

php google-oauth google-api-php-client

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

google-api-php-client ×1

google-oauth ×1

php ×1