Ich habe diesen Google-Authentifizierung Tutorial wurde es besser zu verstehen, wie die Google-signin api verwenden, und ich habe vor kurzem diesen Fehler erhalten:Fatal error: Call auf eine Elementfunktion getAttributes() auf Array
Fatal error: Call to a member function getAttributes() on array.
Es tritt auf, wenn ich versuche:
$this->client->verifyIdToken()->getAttributes();
in der getPayload()
Funktion. Ich weiß nicht, warum das passiert. Meine Konfiguration ist Windows 10 und ich verwende WAMP-Server, um diese Anwendung auszuführen. Jede Hilfe wäre willkommen.
<?php class GoogleAuth {
private $db;
private $client;
public function __construct(Google_Client $googleClient)
{
$this->client = $googleClient;
$this->client->setClientId('234sfsdfasdfasdf3223jgfhjghsdsdfge3.apps.googleusercontent.com');
$this->client->setClientSecret('fD5g4-B6e5dCDGASefsd-');
$this->client->setRedirectUri('http://localhost:9080/GoogleSigninTutorial/index.php');
$this->client->setScopes('email');
}
public function checkToken()
{
if(isset($_SESSION['access_token']) && !empty($_SESSION['access_token']))
{
$this->client->setAccessToken($_SESSION['access_token']);
}
else
{
return $this->client->createAuthUrl();
}
return '';
}
public function login()
{
if(isset($_GET['code']))
{
$this->client->authenticate($_GET['code']);
$_SESSION['access_token'] = $this->client->getAccessToken();
return true;
}
return false;
}
public function logout()
{
unset($_SESSION['access_token']);
}
public function getPayload()
{
return $this->client->verifyIdToken()->getAttributes();
}
}
?>
Danke !!! Sparte mir Zeit! Nur eine Sache, wenn die Festlegung der Bereiche angeben, was Sie wollen ... überprüfen Sie hier ... http: //stackoverflow.com/questions/14007560/get-userinfo-from-google-oauth-2-0-php-api – Albeis
Guter Punkt Albeis! Außerdem können Sie hier alle Bereiche finden https://developers.google.com/identity/protocols/googlescopes Verwenden Sie einfach Strg + F (Cmd + F), um nach einem bestimmten Schlüsselwort im gewünschten Bereich zu suchen sicher, wie es bezeichnet wird. – user