Hướng dẫn api login google php - đăng nhập api google php

Bây giờ việc login mạng xã hội đối với nhu cầu website rất cần thiết, giúp cho người dùng đăng nhập và đăng ký một cách nhanh và hiệu quả, ta cũng thấy rằng các website khác có các chức năng như: Login Google hoặc Facebook,Twitter,...login khác nhiều mạng xã hội

Nay mình chia sẻ mọi người cách Login Google như sau, đầu tiên ta cũng cần cài đặt trên Google API Console, để có được (client ID,client secret)

Hướng dẫn api login google php - đăng nhập api google php

Hướng dẫn api login google php - đăng nhập api google php

Hướng dẫn api login google php - đăng nhập api google php
Sau khi ta có được Client ID và Client secret ta copy nó và lưu lại để hồi khai báo trong login google.

Tiếp tục bạn cần tải bộ thư viện google cung cấp cho ta về có 2 cách để làm điều này, bạn dùng cách nào cũng được!

Cách 1: $ composer require google/apiclient:"^2.0"$ composer require google/apiclient:"^2.0"

Cách 2: https://github.com/googleapis/google-api-php-client/releaseshttps://github.com/googleapis/google-api-php-client/releases

Khi bạn tải thư viện về, bạn giải nén vào project bạn cần dùng là được!

Tạo file define.php in project define.php in project 

Ở bên trên mình cài đặt file define.phpđể giúp chúng ta thuận lợi khi gọi chúng, bạn copy các Client ID và Clien Secret vào file define.php define.phpđể giúp chúng ta thuận lợi khi gọi chúng, bạn copy các Client ID và Clien Secret vào file define.php 

Tạo file redirect-google.php trong project của ta như sau:redirect-google.php trong project của ta như sau:

setClientId(GOOGLE_APP_ID);
    $client->setClientSecret(GOOGLE_APP_SECRET);
    $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
    $client->addScope("email");
    $client->addScope("profile");
   
    if (isset($_GET['code'])) {
        $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
       // print_r($token);
        $client->setAccessToken($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;
       // print_r($google_account_info);
       /**
        * CHECK EMAIL AND NAME IN DATABASE
        */
        $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
        $result = mysqli_query($conn,$sql);
        $rowcount=mysqli_num_rows($result);
        if($rowcount>0){
            /**
             * USER EXITS
             */
            header('location:home');
        }
        else{
            /**
             * INSERT USER TO DATABASE
             * AFTER INSERT, YOU CAN HEADER TO HOME
             */

        }
       
    } else {
        /**
         * IF YOU DON'T LOGIN GOOGLE
         * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
         */
        echo "Google Login";
    }

Vậy là xong, giờ ta có thể test thử xem coi nó chạy sao, bạn chỉ cần gõ http://localhost/LoginGoogle/redirect-google.php là được http://localhost/LoginGoogle/redirect-google.php là được

Hướng dẫn api login google php - đăng nhập api google php

Các bạn nếu gặp lỗi thì xem lại phần Client ID và Client Secret, Link Callback đúng chưa nghe! Chúc các bạn thành công!

Rất nhiều các dịch vụ của Google có thể truy cập và ứng dụng vào dự án PHP của bạn thông qua các API mà chính Google cung cấp. Google cung cấp sẵn các thư viện này ở đây:   google-api-php-client. Có thể tải về và cài đặt thủ công vào dự án nhưng nên dùng Composer để tích hợp bằng cách gõ lệnh sau để thư viện đó tích hợp vào dự án (trong thư mục vendoer):nên dùng Composer để tích hợp bằng cách gõ lệnh sau để thư viện đó tích hợp vào dự án (trong thư mục vendoer):

composer require google/apiclient:^2.0

Như vậy đã có thư viện, đảm bảo load thư viện băng cách thêm mã: include "vendor/autoload.php"; khi dùng.

Sử dụng xác thực OAuth tài khoản Google Plus

Dịch vụ này cho phép người dùng cung cấp các thông tin xác thực, như để đăng nhập vào website của bạn chẳng hạn. Người dùng sẽ được chuyển hưởng đến dịch vụ của Google và Google sẽ cung cấp lại các thông tin cần thiết để xác thực như ID, username, email ... tùy thuộc vào sự cho phép của người dùng ... (thông tin và quyền hạn do bạn thiết lập - thường thì với login thì bạn chỉ cần xin email của người dùng là đủ).

Để sử dụng được API của Google trước tiên bạn cần có một dự án (ứng dụng) tại Google API:Google API:

Tạo ứng dụng (dự án) Google API

Bạn phải có một tài khoản Google Console tại https://console.developers.google.com/ vậy hãy đăng ký tài khoản này trước. Sau đó bấm vào mục Create Project, đồng ý với các điều khoản để tạo dự án của bạn.

Tạo Credentials: Đây là mã để ứng dụng của bạn truy cập dịch vụ. Bạn chọn dự án mới tạo ra, chọn đến mục Credentials để tạo mới. Khi bấm vào Create Credential, chọn mục OAuth client ID.: Đây là mã để ứng dụng của bạn truy cập dịch vụ. Bạn chọn dự án mới tạo ra, chọn đến mục Credentials để tạo mới. Khi bấm vào Create Credential, chọn mục OAuth client ID.

Hướng dẫn api login google php - đăng nhập api google php

Tiếp theo bấm vào OAuth consent screen để cấu hình thông tin sẽ hiện thị khi xin quyền từ người dùng. Bạn nhập vào tên ứng dụng đăng nhập của bạn và tùy chọn thêm (không cũng được) cung cấp một logo (Logo xuất hiện khi hỏi người dùng cho phép cung cấp xác thực), cung cấp các đường dẫn URL đến Website của bạn như trang Privacy, Term ... Đảm bảo tuân thủ chính sách của Google - thông tin rõ ràng đến người dùng khi xin quyền truy cập thông tin tài khoản của họ

Sau khi Save lại, màn hình hiện ra chọn Web application. Nhập vào thêm các thông tin (quan trọng)

  • Tên ứng dụng đăng nhập
  • Url đến website (ví dụ http://xuanthulab.net).
  • Authorized redirect URIs: (rất quan trọng) - là đường dẫn chính xác đến trang xác thực (login) bằng tài khoản Google với user của bạn. Trang này là trang mà sau khi người dùng xác thực từ Google, Google sẽ chuyển hướng và cấp thông tin đến Url này (và bạn phải lập trình để lấy thông tin này). Ví dụ Url này như sau:
    setClientId(GOOGLE_APP_ID);
        $client->setClientSecret(GOOGLE_APP_SECRET);
        $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
        $client->addScope("email");
        $client->addScope("profile");
       
        if (isset($_GET['code'])) {
            $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
           // print_r($token);
            $client->setAccessToken($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;
           // print_r($google_account_info);
           /**
            * CHECK EMAIL AND NAME IN DATABASE
            */
            $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
            $result = mysqli_query($conn,$sql);
            $rowcount=mysqli_num_rows($result);
            if($rowcount>0){
                /**
                 * USER EXITS
                 */
                header('location:home');
            }
            else{
                /**
                 * INSERT USER TO DATABASE
                 * AFTER INSERT, YOU CAN HEADER TO HOME
                 */
    
            }
           
        } else {
            /**
             * IF YOU DON'T LOGIN GOOGLE
             * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
             */
            echo "Google Login";
        }
    
    0 - bạn chỉ có thể thiết lập để Google chuyển thông tin đến những URL khai báo ở đây
    : (rất quan trọng) - là đường dẫn chính xác đến trang xác thực (login) bằng tài khoản Google với user của bạn. Trang này là trang mà sau khi người dùng xác thực từ Google, Google sẽ chuyển hướng và cấp thông tin đến Url này (và bạn phải lập trình để lấy thông tin này). Ví dụ Url này như sau:
    setClientId(GOOGLE_APP_ID);
        $client->setClientSecret(GOOGLE_APP_SECRET);
        $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
        $client->addScope("email");
        $client->addScope("profile");
       
        if (isset($_GET['code'])) {
            $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
           // print_r($token);
            $client->setAccessToken($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;
           // print_r($google_account_info);
           /**
            * CHECK EMAIL AND NAME IN DATABASE
            */
            $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
            $result = mysqli_query($conn,$sql);
            $rowcount=mysqli_num_rows($result);
            if($rowcount>0){
                /**
                 * USER EXITS
                 */
                header('location:home');
            }
            else{
                /**
                 * INSERT USER TO DATABASE
                 * AFTER INSERT, YOU CAN HEADER TO HOME
                 */
    
            }
           
        } else {
            /**
             * IF YOU DON'T LOGIN GOOGLE
             * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
             */
            echo "Google Login";
        }
    
    0 - bạn chỉ có thể thiết lập để Google chuyển thông tin đến những URL khai báo ở đây
  • Sau khi tạo xong bạn sẽ được cung cấp
    setClientId(GOOGLE_APP_ID);
        $client->setClientSecret(GOOGLE_APP_SECRET);
        $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
        $client->addScope("email");
        $client->addScope("profile");
       
        if (isset($_GET['code'])) {
            $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
           // print_r($token);
            $client->setAccessToken($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;
           // print_r($google_account_info);
           /**
            * CHECK EMAIL AND NAME IN DATABASE
            */
            $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
            $result = mysqli_query($conn,$sql);
            $rowcount=mysqli_num_rows($result);
            if($rowcount>0){
                /**
                 * USER EXITS
                 */
                header('location:home');
            }
            else{
                /**
                 * INSERT USER TO DATABASE
                 * AFTER INSERT, YOU CAN HEADER TO HOME
                 */
    
            }
           
        } else {
            /**
             * IF YOU DON'T LOGIN GOOGLE
             * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
             */
            echo "Google Login";
        }
    
    1 và
    setClientId(GOOGLE_APP_ID);
        $client->setClientSecret(GOOGLE_APP_SECRET);
        $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
        $client->addScope("email");
        $client->addScope("profile");
       
        if (isset($_GET['code'])) {
            $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
           // print_r($token);
            $client->setAccessToken($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;
           // print_r($google_account_info);
           /**
            * CHECK EMAIL AND NAME IN DATABASE
            */
            $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
            $result = mysqli_query($conn,$sql);
            $rowcount=mysqli_num_rows($result);
            if($rowcount>0){
                /**
                 * USER EXITS
                 */
                header('location:home');
            }
            else{
                /**
                 * INSERT USER TO DATABASE
                 * AFTER INSERT, YOU CAN HEADER TO HOME
                 */
    
            }
           
        } else {
            /**
             * IF YOU DON'T LOGIN GOOGLE
             * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
             */
            echo "Google Login";
        }
    
    2. Lấy lại hai mã này để sử dụng trong ứng dụng của bạn (bạn phải giữ bí mật mã này). Hai mã này có dạng ví dụ 537075956582-2kvdcqff03254g53pjgond5a5f4pn7fv.apps.googleusercontent.com và serect là: 5FgFikxxxxxxxxxxIvO2mvFE.

Như vậy bước chuẩn bị đã xong, cơ bản bước này bạn cần một tài khoản

setClientId(GOOGLE_APP_ID);
    $client->setClientSecret(GOOGLE_APP_SECRET);
    $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
    $client->addScope("email");
    $client->addScope("profile");
   
    if (isset($_GET['code'])) {
        $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
       // print_r($token);
        $client->setAccessToken($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;
       // print_r($google_account_info);
       /**
        * CHECK EMAIL AND NAME IN DATABASE
        */
        $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
        $result = mysqli_query($conn,$sql);
        $rowcount=mysqli_num_rows($result);
        if($rowcount>0){
            /**
             * USER EXITS
             */
            header('location:home');
        }
        else{
            /**
             * INSERT USER TO DATABASE
             * AFTER INSERT, YOU CAN HEADER TO HOME
             */

        }
       
    } else {
        /**
         * IF YOU DON'T LOGIN GOOGLE
         * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
         */
        echo "Google Login";
    }
3, mã
setClientId(GOOGLE_APP_ID);
    $client->setClientSecret(GOOGLE_APP_SECRET);
    $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
    $client->addScope("email");
    $client->addScope("profile");
   
    if (isset($_GET['code'])) {
        $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
       // print_r($token);
        $client->setAccessToken($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;
       // print_r($google_account_info);
       /**
        * CHECK EMAIL AND NAME IN DATABASE
        */
        $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
        $result = mysqli_query($conn,$sql);
        $rowcount=mysqli_num_rows($result);
        if($rowcount>0){
            /**
             * USER EXITS
             */
            header('location:home');
        }
        else{
            /**
             * INSERT USER TO DATABASE
             * AFTER INSERT, YOU CAN HEADER TO HOME
             */

        }
       
    } else {
        /**
         * IF YOU DON'T LOGIN GOOGLE
         * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
         */
        echo "Google Login";
    }
1,
setClientId(GOOGLE_APP_ID);
    $client->setClientSecret(GOOGLE_APP_SECRET);
    $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
    $client->addScope("email");
    $client->addScope("profile");
   
    if (isset($_GET['code'])) {
        $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
       // print_r($token);
        $client->setAccessToken($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;
       // print_r($google_account_info);
       /**
        * CHECK EMAIL AND NAME IN DATABASE
        */
        $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
        $result = mysqli_query($conn,$sql);
        $rowcount=mysqli_num_rows($result);
        if($rowcount>0){
            /**
             * USER EXITS
             */
            header('location:home');
        }
        else{
            /**
             * INSERT USER TO DATABASE
             * AFTER INSERT, YOU CAN HEADER TO HOME
             */

        }
       
    } else {
        /**
         * IF YOU DON'T LOGIN GOOGLE
         * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
         */
        echo "Google Login";
    }
5 và
setClientId(GOOGLE_APP_ID);
    $client->setClientSecret(GOOGLE_APP_SECRET);
    $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
    $client->addScope("email");
    $client->addScope("profile");
   
    if (isset($_GET['code'])) {
        $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
       // print_r($token);
        $client->setAccessToken($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;
       // print_r($google_account_info);
       /**
        * CHECK EMAIL AND NAME IN DATABASE
        */
        $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
        $result = mysqli_query($conn,$sql);
        $rowcount=mysqli_num_rows($result);
        if($rowcount>0){
            /**
             * USER EXITS
             */
            header('location:home');
        }
        else{
            /**
             * INSERT USER TO DATABASE
             * AFTER INSERT, YOU CAN HEADER TO HOME
             */

        }
       
    } else {
        /**
         * IF YOU DON'T LOGIN GOOGLE
         * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
         */
        echo "Google Login";
    }
6 mà Google sẽ chuyển hướng thông tin cho bạn.

Lập trình PHP với Google Client để đăng nhập website

Mục tiêu là sử dụng OAuth của Google để cho phép người dùng đăng nhập vào website của bạn, cụ thể như sau: là sử dụng OAuth của Google để cho phép người dùng đăng nhập vào website của bạn, cụ thể như sau:

  • Nếu người dùng truy cập vào trang đăng nhập (mà chữa có thông tin đăng nhập trong Session) thì ứng dụng sẽ chuyển hướng đến OAuth của Google để yêu cầu thông tin từ người dùng - Trang đăng nhập của bạn có URL do bạn thiết kế, ví dụ
    setClientId(GOOGLE_APP_ID);
        $client->setClientSecret(GOOGLE_APP_SECRET);
        $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
        $client->addScope("email");
        $client->addScope("profile");
       
        if (isset($_GET['code'])) {
            $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
           // print_r($token);
            $client->setAccessToken($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;
           // print_r($google_account_info);
           /**
            * CHECK EMAIL AND NAME IN DATABASE
            */
            $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
            $result = mysqli_query($conn,$sql);
            $rowcount=mysqli_num_rows($result);
            if($rowcount>0){
                /**
                 * USER EXITS
                 */
                header('location:home');
            }
            else{
                /**
                 * INSERT USER TO DATABASE
                 * AFTER INSERT, YOU CAN HEADER TO HOME
                 */
    
            }
           
        } else {
            /**
             * IF YOU DON'T LOGIN GOOGLE
             * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
             */
            echo "Google Login";
        }
    
    0
  • Nếu người dùng đồng ý xác thực với tài khoản Google - Google sẽ gửi thông tin là mã Token đến URL trên trang của bạn - từ mã này cùng với thư viện
    setClientId(GOOGLE_APP_ID);
        $client->setClientSecret(GOOGLE_APP_SECRET);
        $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
        $client->addScope("email");
        $client->addScope("profile");
       
        if (isset($_GET['code'])) {
            $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
           // print_r($token);
            $client->setAccessToken($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;
           // print_r($google_account_info);
           /**
            * CHECK EMAIL AND NAME IN DATABASE
            */
            $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
            $result = mysqli_query($conn,$sql);
            $rowcount=mysqli_num_rows($result);
            if($rowcount>0){
                /**
                 * USER EXITS
                 */
                header('location:home');
            }
            else{
                /**
                 * INSERT USER TO DATABASE
                 * AFTER INSERT, YOU CAN HEADER TO HOME
                 */
    
            }
           
        } else {
            /**
             * IF YOU DON'T LOGIN GOOGLE
             * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
             */
            echo "Google Login";
        }
    
    8 bạn có thể đọc để lấy thông tin như Email, tên, tuổi ... (tùy thuộc vào các thông tin bạn xin).

Dưới đây là mã PHP dành cho URL (trang) khi người dùng đăng nhập, cũng là URL mà Google gửi thông tin (

setClientId(GOOGLE_APP_ID);
    $client->setClientSecret(GOOGLE_APP_SECRET);
    $client->setRedirectUri(GOOGLE_APP_CALLBACK_URL);
    $client->addScope("email");
    $client->addScope("profile");
   
    if (isset($_GET['code'])) {
        $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
       // print_r($token);
        $client->setAccessToken($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;
       // print_r($google_account_info);
       /**
        * CHECK EMAIL AND NAME IN DATABASE
        */
        $check = "SELECT * FROM `users` WHERE `email`='".$email."' and `name`='".$name."'";
        $result = mysqli_query($conn,$sql);
        $rowcount=mysqli_num_rows($result);
        if($rowcount>0){
            /**
             * USER EXITS
             */
            header('location:home');
        }
        else{
            /**
             * INSERT USER TO DATABASE
             * AFTER INSERT, YOU CAN HEADER TO HOME
             */

        }
       
    } else {
        /**
         * IF YOU DON'T LOGIN GOOGLE
         * YOU CAN SEEN AGAIN GOOGLE_APP_ID, GOOGLE_APP_SECRET, GOOGLE_APP_CALLBACK_URL
         */
        echo "Google Login";
    }
0)

Nội dung file

composer require google/apiclient:^2.0
0

<?php
    /**
     * Trang này để lấy thông tin đăng nhập từ google, nếu chưa đăng nhập sẽ mở popup để xác thực từ Google
     */
    include "vendor/autoload.php";


    /** getinfo: Hàm này lấy thông tin User sau khi đã xác thực thành công, nên chuyển hàm này vào file khác
     * @param $client Google_Client
     * @return mixed
     */
    function getinfo($client) {

        $client->setAccessToken($_SESSION['access_token']);
        $plus = new Google_Service_Plus($client);

        if ($client->isAccessTokenExpired()) {
            //Truy cập bị hết hạn, cần xác thực lại
            //Chuyển hướng sang Google để lấy xác thực
            $auth_url = $client->createAuthUrl();
            header("Location: $auth_url");
            die();
        }


        //Lấy các thông tin của User
        $me = $plus->people->get('me');
        $id    = @$me['id'];                    //ID
        $email = @$me['emails'][0]['value'];    //Địa chỉ email
        $name  = @$me['displayName'];           //Tên
        $image = @$me['image']['url'];          //Url của ảnh avatar

        var_dump($id, $email, $name);
        

        /***
            Đến đây bạn đã có $email, $id, $name ... từ tài khoản Google của người dùng
            Từ thông tin này bạn cho phép đăng nhập (xác thực, đăng ký ...) trên website của bạn
            mà không cần thiết phải yêu cầu nhập các thông tin khác (password, xác thực email ...)

        ***/

    }


    /***
     *
     * TRANG ĐĂNG NHẬP VỚI GOOGLE CLIENT
     *
     ***/


    $client = new Google_Client();

    $redirecturi = "http://xuanthulab.net/logingoogle.php";  // URL này được Google chuyển hướng, khi người dùng đồng ý

    $client->setRedirectUri($redirecturi);

    // Khai báo xin các quyền truy cập: lấy email, tên, ID người dùng ...
    // Tham khảo các quyền khác Scope: https://developers.google.com/identity/protocols/googlescopes
    $client->addScope([
        'https://www.googleapis.com/auth/plus.login',
        'https://www.googleapis.com/auth/userinfo.email'
    ]);



    //Set param google API
    $client->setClientId('điền mã Client ID đã cấp');
    $client->setClientSecret('điền mã Secret đã cấp');
    $client->setAccessType('offline');

    //Đây là URL đến Google, bạn cần mở nếu chưa đăng nhập
    $auth_url = $client->createAuthUrl();


    if (isset($_SESSION['access_token']) && $_SESSION['access_token'])
    {
        /*
         * Đã đăng nhập trước rồi do tồn tại access_token trong Session
         * Nên bạn không cần xác thực từ Google nữa mà chỉ việc lấy thông tin
         */

        getinfo($client);

    }
    else
    {
        /**
         * Nếu tồn tại $_GET['code'] trên URL có nghĩa là Google vừa gửi Code truy cập tới cho bạn, bạn cần lấy thông
         * tin này để truy cập.
         */
        if (isset($_GET['code'])) {
            $client->fetchAccessTokenWithAuthCode($_GET['code']);
            //Lấy mã Token và lưu lại tại SESSION
            $_SESSION['access_token'] = $client->getAccessToken();
            getinfo($client);
        }
        else
        {
            //Chuyển hướng sang Google để lấy xác thực
            $auth_url = $client->createAuthUrl();
            header("Location: $auth_url");
            die();
        }
    }