Cómo agregar el inicio de sesión de Google OAuth en un sitio web con PHP
Si está ejecutando un sitio web donde un usuario puede registrarse, es posible que desee agregar la función de inicio de sesión de Google OAuth. El inicio de sesión de Google para sitios web agrega un proceso de registro sencillo para los usuarios. Sus usuarios pueden usar su cuenta de Google para registrarse en su sitio web. No es necesario que llenen su formulario de registro, activen su cuenta por correo electrónico, etc.
En este artículo, estudiamos cómo agregar la función de inicio de sesión de Google OAuth a su sitio web.
Obtenga sus credenciales
Para comenzar con la API de inicio de sesión de Google, primero debe crear un proyecto en Google y obtener sus credenciales. A continuación se muestran los pasos que debe realizar para crear el proyecto de Google.
- Vaya a la Consola para desarrolladores de Google.
- Haga clic en el menú desplegable y cree un nuevo proyecto haciendo clic en el signo (+). Alternativamente, también puede seleccionar el proyecto existente.
- Seleccione su proyecto y haga clic en ‘HABILITAR APIS Y SERVICIOS’. En el cuadro de búsqueda, escriba "Google+" y seleccione la API de Google+. Permitirle.
- De nuevo, acceda al panel de control de su proyecto y seleccione Credenciales en la barra lateral.
- En la pestaña Credenciales, haga clic en el menú desplegable Crear credenciales y seleccione ID de cliente OAuth.
- Seleccione la aplicación web en Tipo de aplicación. En las URL de redireccionamiento autorizadas, ingrese la URL
YOUR_DOMAIN_URL/index.php
- Una vez que lo guarde, obtendrá el cuadro de diálogo junto con su ID de cliente y el secreto del cliente. Copie estas claves que necesitaremos en los próximos pasos.
Es posible que observe la URL de redireccionamiento que configuramos en la aplicación. En este tutorial, manejaremos el código de devolución de llamada en index.php
. Los usuarios son libres de utilizar cualquier otro archivo para este propósito.
Instalación de la biblioteca HybridAuth
HybridAuth es una biblioteca PHP de inicio de sesión social de código abierto. Usando esta biblioteca, podemos agregar un inicio de sesión social para uno o varios proveedores como Google, Facebook, Twitter, etc.
Instalemos la biblioteca HybridAuth usando un compositor. Cree un composer.json
archivo en la carpeta raíz del proyecto y agregue el siguiente código en él.
{
"require": {
"hybridauth/hybridauth": "~3.0"
}
}
A continuación, abra la terminal en el directorio raíz de su proyecto y ejecute el comando:
composer install
Cree el config.php
archivo y agregue el código a continuación para configurar el inicio de sesión de Google.
<?php
require_once 'vendor/autoload.php';
$config = [
'callback' => 'YOUR_DOMAIN_URL/index.php',
'keys' => [
'id' => 'YOUR_CLIENT_ID',
'secret' => 'YOUR_CLIENT_SECRET'
],
'scope' => 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
'authorize_url_parameters' => [
'approval_prompt' => 'force', // to pass only when you need to acquire a new refresh token.
'access_type' => 'offline'
]
];
$adapter = new HybridauthProviderGoogle( $config );
Asegúrese de reemplazar los marcadores de posición con los valores reales. En el código anterior pasamos YOUR_DOMAIN_URL/index.php
como un valor de devolución de llamada. Ajuste esta ruta según sus necesidades.
Agregar inicio de sesión de Google OAuth
Todos configuramos nuestras configuraciones y bueno seguir adelante. Entonces, creemos archivos index.php
y logout.php
en el directorio raíz de su proyecto.
index.php
<?php
require_once 'config.php';
try {
$adapter->authenticate();
$userProfile = $adapter->getUserProfile();
print_r($userProfile);
echo '<a href="logout.php">Logout</a>';
}
catch( Exception $e ){
echo $e->getMessage() ;
}
Ahora, cuando ejecuta index.php
en el navegador, nuestro código primero verifica si el usuario está autenticado con ‘Google’ o no. Si no es así, redirige a la página de inicio de sesión de Google. El usuario tiene que iniciar sesión con su cuenta de Google y luego se le redirigirá a la de index.php
nuevo. Una vez que el usuario llega a la página de inicio de sesión, obtenemos el perfil de usuario mediante el método getUserProfile()
.
En el logout.php
archivo solo necesitamos desconectar el adaptador de Google.
logout.php
<?php
require_once 'config.php';
try {
if ($adapter->isConnected()) {
$adapter->disconnect();
echo 'Logged out the user';
echo '<p><a href="index.php">Login</a></p>';
}
}
catch( Exception $e ){
echo $e->getMessage() ;
}
Esperamos que pueda aprender sobre el inicio de sesión de Google OAuth en un sitio web con PHP. Comparta sus pensamientos en la sección de comentarios a continuación.
Artículos relacionados
- Inicio de sesión de Google en Laravel usando Laravel Socialite
- Cómo integrar el boletín de MailChimp en la aplicación Laravel
- Cómo realizar una copia de seguridad de la aplicación Laravel