A API do OAuth do Google+ armazena e recupera tokens após o primeiro login e autorização
Eu li a documentação, exemplos e tutoriais de como usar a API do Google. Já tenho um mini-aplicativo que mostra suas atividades e informações mais recentes, mas uso sessões para armazenar o token.
Minha pergunta é: como posso armazenar e recuperar o token do banco de dados para que, quando um usuário (que já se registrou) clicar em "login", possa usar a API imediatamente sem autorização repetida? Observe que usei o exemplo como ponto de partida para o meu mini-aplicativo.
Aqui está um trecho de código:
<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>
Muito obrigado pela ajuda!
Saudações,
John