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.