La necesidad de realizar un registro rápido a nuestros usuarios cada vez es mas que necesario por eso aquí les muestro como realizar un inicio de sesión con Google con PHP. Este tutorial es muy bueno para implementar a tu sitio web o sistema web ya que es muy sencillo tanto para el usuario como para implementar dentro del proyecto ya que con pocas líneas de código vas a poder tener listo el sistema.
Hoy vamos a ver cómo iniciar sesión con Google en PHP para aprender a agregar esta funcionalidad en nuestros sistemas web.
A parte de ser mucho mas seguro y cómodo para los usuarios, ya que no solo le facilita el usuario si no también la contraseña.
Bien la primera parte vamos a ver de como iniciar la sesión con Google en PHP.
Lo primero es instalar la librería que nos ofrece el mismo Google para php
composer require google/apiclient:^2.0
y por supuesto el autoload cada que utilicemos la librería:
require_once 'vendor/autoload.php';
Siempre recomiendo tener un archivo separado donde guardemos las variables necesarias, tanto como el id cliente, el secreto y la url de redirección, esto es para tener un orden y si es necesario solamente editar este archivo mas adelante.
$googleClientId = '[clientid]'; $googleClientSecret = '[secret]'; $googleRedirectUri = 'https://..../login-google.php';
Estos datos los obtenemos al momento de crear un proyecto en la consola que Google nos provee y a activar la API, les dejo el enlace para poder crear https://developers.google.com/workspace/guides/create-project
Ahora vamos a lo bueno, crearemos nuestro objeto cliente de Google.
$googleClient = new Google_Client();
$googleClient->setClientId($googleClientId);
$googleClient->setClientSecret($googleClientSecret);
$googleClient->setRedirectUri($googleRedirectUri);
$googleClient->addScope("email");
$googleClient->addScope("profile");
En esta sección creamos nuestro cliente mediante nuestras variables, donde vamos a establecer donde vamos a enviar a nuestro cliente luego de iniciado la sesión, así también podemos generar un sesion_start para guardar una variable de sesión dentro de nuestro código. Con este código lo que estamos indicando es que Google nos envié el correo y la imagen de perfil del usuario.
<a href="<?php echo $googleClient->createAuthUrl(); ?>"><img src="src/img/google.png" /></a>
donde el método createAuthUrl creara la URL donde se validará la cuenta del usuario, colocamos una imagen de Google para que se le vea al usuario así y pueda reconocer con que método puede iniciar sesión en nuestro proyecto.
Ahora el usuario podrá visualizar un botón de iniciar sesión con Google, pero aún falta algo muy importante y es que nos regrese si ha tenido éxito o no y la información que solicitamos.
Vamos a crear un nuevo archivo login-google.php o el archivo que colocaste en la variable googleRedirectUri.
Una vez más llamamos al autoload y creamos nuestro objeto Google_Client.
Google nos pasa mediante GET una variable llamada code, debemos validarla y con ella obtener el token de acceso a la cuenta del usuario.
if (isset($_GET['code'])) {
$token = $googleClient->fetchAccessTokenWithAuthCode($_GET['code']);
$googleClient->setAccessToken($token['access_token']);
$google_oauth = new Google_Service_Oauth2($googleClient);
$google_account_info = $google_oauth->userinfo->get();
$email = $google_account_info->email;
$name = $google_account_info->name;
$picture = $google_account_info->picture;
}
Con este código tendremos el nombre del usuario, su correo electrónico y su imagen de perfil asi de sencillo.
Si contamos con un sistema de perfil con imágenes podremos asignar sin problemas la imagen aquí.
Y así logramos permitir a nuestros usuarios acceder vía Google, mucho más rápido y seguro que de forma manual.







