【问题标题】:How to maintain session based in google sign api using php?如何使用 php 维护基于 google sign api 的会话?
【发布时间】:2021-11-02 09:22:18
【问题描述】:

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

  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
   
       

【问题讨论】:

  • 请展示你到目前为止所做的尝试。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: php google-signin


【解决方案1】:

您当然可以在会话变量中维护用户信息,而无需创建用户帐户。用户通过身份验证后,您可以根据用例决定是否创建帐户。 Google 提供了一个helpful guide 来集成 Google 登录。请注意,他们建议使用 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();在每个页面的顶部,否则您会丢失会话和数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多