PHPackages                             pampacode/autenticacion-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. pampacode/autenticacion-php

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

pampacode/autenticacion-php
===========================

Sistema de autenticación PHP con registro, recuperación de contraseñas y verificación por correo.

00PHP

Since Jan 30Pushed 1y ago1 watchersCompare

[ Source](https://github.com/EzequielDelMastro/php-auth-system)[ Packagist](https://packagist.org/packages/pampacode/autenticacion-php)[ RSS](/packages/pampacode-autenticacion-php/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

php-auth-system - PampaCode - 2025
==================================

[](#php-auth-system---pampacode---2025)

sistema de autenticación, PHP, seguridad, registro de usuarios, recuperación de contraseñas, verificación por correo, OTP, autenticación segura, API, integración rápida

Guía de Uso de la API
=====================

[](#guía-de-uso-de-la-api)

Este documento detalla el uso de la API que permite gestionar usuarios y realizar operaciones de autenticación. Sigue las instrucciones para integrarla y utilizarla correctamente.

Configuración Inicial
---------------------

[](#configuración-inicial)

### Esquema Tabla BD

[](#esquema-tabla-bd)

CREATE TABLE users ( id INT(11) AUTO\_INCREMENT PRIMARY KEY, email VARCHAR(255) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci NOT NULL, password VARCHAR(255) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci NOT NULL, access\_token VARCHAR(255) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci DEFAULT NULL, token\_expiration DATETIME DEFAULT NULL, created\_at TIMESTAMP DEFAULT CURRENT\_TIMESTAMP, reset\_token VARCHAR(255) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci DEFAULT NULL, reset\_token\_expiration DATETIME DEFAULT NULL, verification\_token VARCHAR(500) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci DEFAULT NULL, is\_verified TINYINT(4) DEFAULT NULL, otp\_code VARCHAR(6) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci DEFAULT NULL, otp\_expiration DATETIME DEFAULT NULL, provider VARCHAR(50) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci DEFAULT NULL, provider\_id VARCHAR(255) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci DEFAULT NULL, picture\_profile VARCHAR(500) CHARACTER SET latin1 COLLATE latin1\_swedish\_ci DEFAULT NULL, INDEX (email) );

### Entorno de Desarrollo

[](#entorno-de-desarrollo)

- La API incluye un entorno de desarrollo y producción.
- Configura el entorno cambiando la constante `ENV` en el archivo `index.php`: ```
    define('ENV', 'development'); // Cambiar a 'production' para producción
    ```

### Requisitos

[](#requisitos)

- PHP &gt;= 7.4
- Extensión PDO habilitada
- Servidor configurado para manejar solicitudes HTTP (Apache o NGINX)

### Instalación

[](#instalación)

1. Clona este repositorio o descárgalo como un archivo ZIP.
2. Configura tu base de datos e importa el esquema requerido.
3. Configura la conexión a la base de datos en el archivo `db.php`.

Autenticación y Rutas
---------------------

[](#autenticación-y-rutas)

La API incluye varias rutas para manejar operaciones como registro, inicio de sesión y gestión de contraseñas. Todas las respuestas son en formato JSON.

### Cabeceras Comunes

[](#cabeceras-comunes)

Asegúrate de incluir las siguientes cabeceras en tus solicitudes:

- `Content-Type: application/json`
- `Authorization: Bearer ` (cuando se requiera autenticación)

### Endpoints Disponibles

[](#endpoints-disponibles)

#### Registro de Usuario

[](#registro-de-usuario)

- **Ruta:** `/register`
- **Método:** POST
- **Parámetros del cuerpo:**```
    {
      "email": "correo@ejemplo.com",
      "password": "contraseña123"
    }
    ```
- **Respuesta exitosa:**```
    {
      "message": "Se ha enviado un correo para verificar tu dirección de correo electrónico."
    }
    ```

#### Verificación de Correo Electrónico

[](#verificación-de-correo-electrónico)

- **Ruta:** `/verify-email?token=&user_id=`
- **Método:** GET
- **Respuesta exitosa:**```
    {
      "message": "Correo electrónico verificado exitosamente. Ahora puedes iniciar sesión."
    }
    ```

#### Inicio de Sesión

[](#inicio-de-sesión)

- **Ruta:** `/login`
- **Método:** POST
- **Parámetros del cuerpo:**```
    {
      "email": "correo@ejemplo.com",
      "password": "contraseña123"
    }
    ```
- **Respuesta exitosa:**```
    {
      "token": "JWT_Autenticación",
      "message": "Inicio de sesión exitoso."
    }
    ```

#### Actualización de Contraseña

[](#actualización-de-contraseña)

- **Ruta:** `/update-password`
- **Método:** POST
- **Parámetros del cuerpo:**```
    {
      "email": "correo@ejemplo.com",
      "oldPassword": "contraseñaAntigua",
      "newPassword": "nuevaContraseña123",
      "token": "JWT_Autenticación"
    }
    ```
- **Respuesta exitosa:**```
    {
      "message": "Contraseña actualizada exitosamente."
    }
    ```

#### Solicitar Restablecimiento de Contraseña

[](#solicitar-restablecimiento-de-contraseña)

- **Ruta:** `/request-password-reset`
- **Método:** POST
- **Parámetros del cuerpo:**```
    {
      "email": "correo@ejemplo.com"
    }
    ```
- **Respuesta exitosa:**```
    {
      "message": "Se ha enviado un enlace para restablecer tu contraseña."
    }
    ```

#### Restablecer Contraseña

[](#restablecer-contraseña)

- **Ruta:** `/reset-password`
- **Método:** POST
- **Parámetros del cuerpo:**```
    {
      "token": "Token_De_Restablecimiento",
      "newPassword": "nuevaContraseña123"
    }
    ```
- **Respuesta exitosa:**```
    {
      "message": "Contraseña restablecida exitosamente."
    }
    ```

#### Verificar OTP

[](#verificar-otp)

- **Ruta:** `/verify-otp`
- **Método:** POST
- **Parámetros del cuerpo:**```
    {
      "otp": "123456",
      "user_id": 1
    }
    ```
- **Respuesta exitosa:**```
    {
      "message": "OTP verificado correctamente."
    }
    ```

Manejo de Errores
-----------------

[](#manejo-de-errores)

Las respuestas de error tienen el siguiente formato:

```
{
  "error": "Descripción del error"
}
```

Registro con Google OAuth en PHP
================================

[](#registro-con-google-oauth-en-php)

Este sistema permite a los usuarios registrarse utilizando su cuenta de Google mediante OAuth 2.0.

Configuración
-------------

[](#configuración)

1. **Obtener credenciales de Google**

    - Ve a [Google Cloud Console](https://console.cloud.google.com/).
    - Crea un nuevo proyecto o selecciona uno existente.
    - Habilita la API de Google Identity Platform.
    - Crea credenciales OAuth 2.0 y obtén tu `Client ID` y `Client Secret`.
    - Configura el `redirect URI` en **Autorización OAuth 2.0** (ejemplo: `https://tudominio.com/google/register/index.php`).
2. **Configurar las credenciales en el código**
    En el archivo `googlekeysregister.php`, agrega:

    ```

    ```

Iniciar el proceso de autenticación El usuario es redirigido a Google para iniciar sesión. Al autorizar la aplicación, se obtiene un código de autenticación.

Intercambio del código por un token de acceso Se realiza una solicitud a Google para obtener un access\_token. Con este token, se obtiene la información del usuario (email, nombre, foto, etc.).

Registro en la base de datos Se almacena el email, el ID de Google como contraseña encriptada, el estado de verificación y la foto de perfil.

Modifica las credenciales en googlekeysregister.php.

Inicio de Sesión con Google OAuth en PHP
========================================

[](#inicio-de-sesión-con-google-oauth-en-php)

Este sistema permite a los usuarios iniciar sesión con su cuenta de Google mediante OAuth 2.0.

Configuración
-------------

[](#configuración-1)

### 1. Obtener credenciales de Google

[](#1-obtener-credenciales-de-google)

- Accede a [Google Cloud Console](https://console.cloud.google.com/).
- Crea un nuevo proyecto o selecciona uno existente.
- Habilita la API de Google Identity Platform.
- Crea credenciales OAuth 2.0 y obtén tu `Client ID` y `Client Secret`.
- Configura el `redirect URI` en **Autorización OAuth 2.0** (ejemplo: `https://tudominio.com/google/login/auth/index.php`).

### 2. Configurar las credenciales en el código

[](#2-configurar-las-credenciales-en-el-código)

En el archivo `googlekeyslogin.php`, agrega:

```

```

3. Iniciar el proceso de autenticación

    El usuario es redirigido a Google para iniciar sesión. Si el usuario autoriza la aplicación, Google devuelve un código de autorización.
4. Intercambio del código por un token de acceso

    Se realiza una solicitud a Google para obtener un access\_token. Con este token, se obtiene la información del usuario (email, ID, foto de perfil, etc.).
5. Validación del usuario en la base de datos

    Se busca el email del usuario en la base de datos. Si el usuario no está registrado, se muestra un error. Si el usuario está registrado pero no ha verificado su correo, se muestra un mensaje de verificación pendiente. Si todo está correcto, se genera un token de sesión válido por 8 horas.

Notas Adicionales
-----------------

[](#notas-adicionales)

- Usa librerías como `Postman` o `cURL` para probar la API.
- Implementa HTTPS en producción para garantizar la seguridad.
- Para el envío de correos, utiliza una librería robusta como PHPMailer o similar.

###  Health Score

14

—

LowBetter than 1% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/17010688?v=4)[Zeki](/maintainers/EzequielDM)[@EzequielDM](https://github.com/EzequielDM)

---

Top Contributors

[![EzequielDelMastro](https://avatars.githubusercontent.com/u/20187351?v=4)](https://github.com/EzequielDelMastro "EzequielDelMastro (23 commits)")

### Embed Badge

![Health badge](/badges/pampacode-autenticacion-php/health.svg)

```
[![Health](https://phpackages.com/badges/pampacode-autenticacion-php/health.svg)](https://phpackages.com/packages/pampacode-autenticacion-php)
```

###  Alternatives

[kartik-v/yii2-password

Useful password strength validation utilities for Yii Framework 2.0

761.3M17](/packages/kartik-v-yii2-password)[vitalybaev/laravel5-dkim

Laravel 5/6 package for signing outgoing messages with DKIM.

3163.1k](/packages/vitalybaev-laravel5-dkim)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
