如何使用php维护基于谷歌签名api的会话?



我正在尝试使用php集成谷歌登录api。此外,我应该插入用户信息和其他详细信息。对于每次我应该插入或更新userinfo并基于该信息创建会话,还是我可以基于令牌创建会话而不插入。

if (isset($_GET['code'])) {
$token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
$client->setAccessToken($token['access_token']);
$arr_token = $client->getAccessToken();
$_SESSION['access_token'] = $arr_token['access_token'];
// get profile info
$google_oauth = new Google_Service_Oauth2($client);
$google_account_info = $google_oauth->userinfo->get();
$email =  $google_account_info->email;
$name =  $google_account_info->name;
//Insert Google AUthentication data in databse


您当然可以在会话变量中维护用户信息,而无需创建用户帐户。用户通过身份验证后,您就可以根据用例决定是否创建帐户。Google提供了一个有用的指南来集成Google Sign-in。请注意,他们建议使用POST发送访问令牌,而您似乎在使用GET。

一旦你的用户通过了身份验证,你可以创建一个会话:

session_start();

然后填充SESSION变量,这些变量可以在后续页面创建用户帐户或进行其他交互时进行查询,例如:

$_SESSION["auth"] = true;
$_SESSION["googleId"] = $_POST['googleId'];
$_SESSION["name"] = $_POST['name'];
$_SESSION["imageURL"] = $_POST['imageURL'];
$_SESSION["email"] = $_POST['email'];

确保有一个session_start();在每个页面的顶部,否则您将丢失会话和数据。