Google登录DomainException:OpenSSL无法验证数据

时间:2018-07-17 04:58:13

标签: php firebase jwt google-signin

我正在尝试将Google登录集成到网站(PHP)登录页面中。

该网站的开发环境为localhost,但我已通过 / etc / hosts 文件将该网站映射到一个域。因此,目前,我正在通过 dev.test.com/mysite

之类的域访问该网站。

我通过提供 dev.test.com 作为授权的JavaScript来源,为Google登录API生成了客户端ID

我可以成功实现从Google到我的网站的令牌ID。

然后使用Google推荐的 Google Client API库来验证令牌。

function googleLogin(){
    $idToken = $_POST['idtoken'];

    error_log($idToken);

    $client = new Google_Client(['client_id' => getConfiguration('google_sign_in_api_key')]);  

    $payload = $client->verifyIdToken($idToken);

    error_log('######### '. $payload);

    if ($payload) {
      $userid = $payload['sub'];
      // If request specified a G Suite domain:
      //$domain = $payload['hd'];

      error_log('######### '. $payload);


    } else {
      // Invalid ID token
    }
}

如果验证成功,请参考上面的功能 $ payload 不应为空。

我在Google Client API库内部类中放置了一些日志,并发现了以下异常。

  

DomainException:OpenSSL无法验证数据:错误:0906D06C:PEM   例程:PEM_read_bio:无起始行   /var/www/html/google-sign-in/vendor/firebase/php-jwt/src/JWT.php:229\nStack   跟踪:\ n#0   /var/www/html/google-sign-in/vendor/firebase/php-jwt/src/JWT.php(108):   Firebase \ JWT \ JWT :: verify('eyJhbGciOiJSUzI ...',   '* \ xF6 \ x04 \ xD8uq \ xA2 \ x91R \ xA5T \ x01A \ x96t ...','-----开始   PUBL ...','RS256')\ n#1   /var/www/html/google-sign-in/vendor/google/apiclient/src/Google/AccessToken/Verify.php(105):   Firebase \ JWT \ JWT :: decode('eyJhbGciOiJSUzI ...','----- BEGIN PUBL ...',   阵列)\ n#2   /var/www/html/google-sign-in/vendor/google/apiclient/src/Google/Client.php(721):   Google_AccessToken_Verify-> verifyIdToken('eyJhbGciOiJSUzI ...',   '1022197204491-p ...')\ n#3   /var/www/html/google-sign-in/social-login-controller.php(21):   Google_Client-> verifyIdToken('eyJhbGciOiJSUzI ...')\ n#4

与该问题有关的原因可能是什么?

0 个答案:

没有答案