Ho letto la documentazione, esempi ed esercitazioni su come usare l'API di Google, ho già una mini-app che mostra le tue ultime attività e informazioni, ma io usa le sessioni per memorizzare il token.Google+ OAuth API archivia e recupera token dopo il primo accesso e autorizzazione
La mia domanda è, come posso archiviare e recuperare il token dal database in modo che quando un utente (chi è già registrato) fa clic su "accesso", può utilizzare immediatamente l'API senza autorizzazione ripetuta? Nota che ho usato l'esempio come punto di partenza per la mia mini-app.
Ecco un frammento di codice:
$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>
Grazie mille per l'aiuto!
saluti,
John
Grazie per questa risposta! Questo è utile e posso usarlo come una soluzione temporanea. :) Ho già controllato. Ma sai o hai un link a qualsiasi post su come memorizzare i token che ottengo in $ client-> getAccessToken()? e li usa quando l'utente effettua il login? – user1239714
@ user1239714: Non conosco un luogo specifico dove collegarti per un consiglio qui. Dipende interamente da come si mantiene il resto dei dati nella propria applicazione. Ad esempio, se stai scrivendo una tipica applicazione LAMP, potrebbe avere senso memorizzare il token di aggiornamento in MySql per il richiamo successivo. – mimming
@JennyMurphy "Puoi vedere questo nel codice sorgente". Il link è rotto Potresti fornire un altro campione – knightrider