Google+ OAuth API speichert und ruft Token nach der ersten Anmeldung und Autorisierung ab

Ich habe die Dokumentation, Beispiele und Anleitungen zur Verwendung der Google-API gelesen. Es wird bereits eine Mini-App ausgeführt, in der Ihre neuesten Aktivitäten und Informationen angezeigt werden. Ich verwende jedoch Sitzungen zum Speichern des Tokens.

Meine Frage ist, wie kann ich das Token in der Datenbank speichern und abrufen, damit ein Benutzer (der sich bereits registriert hat), der auf "Anmelden" klickt, die API sofort ohne erneute Autorisierung verwenden kann? Beachten Sie, dass ich das Beispiel als Ausgangspunkt für meine Mini-App verwendet habe.

Hier ist ein Codeausschnitt:

<code>$client = new apiClient();
$client->setApplicationName(APP_NAME);
$client->setClientId(CLIENT_ID);
$client->setClientSecret(CLIENT_SECRET);
$client->setRedirectUri(REDIRECT_URL);
$client->setDeveloperKey(DEV_KEY);

$plus = new apiPlusService($client);
$google_userinfo = new apiOauth2Service($client);

$message = "";

// In a real application this would be stored in a database, and not in the session!
if (isset($_SESSION['token']))
  $client->setAccessToken($_SESSION['token']);

$_SESSION['token'] = $client->getAccessToken();

if (isset($_GET['code'])) {
   $client->authenticate();
  // In a real application this would be stored in a database, and not in the session!
  $_SESSION['token'] = $client->getAccessToken();
  header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
...
 //Somewhere here, I added a function that ties $_SESSION['token'] to the user's info.
...
<form action="" method="post" id="form1" name="form1">
   <fieldset>
      <div id="main-url-section" style="width: 50%;margin: 0px auto;text-align: center;">
         <?php
            $authUrl = $client->createAuthUrl();
            print "<p><a class='login' href='$authUrl'>Log me in!</a></p>";
         ?>                                 
      </div>
    </fieldset>
</form>
</code>

Vielen Dank für die Hilfe!

Grüße,

John

Antworten auf die Frage(2)

Ihre Antwort auf die Frage