Skip to main content

Ejemplo de Acceso por Email

Descripción General​

Este tutorial demuestra cómo implementar autenticación basada en correo electrónico para flujos de inicio de sesión de aplicación utilizando el sistema de validación de correo electrónico de Verifik.

Requisitos Previos​

Antes de comenzar, asegúrate de tener:

  • Un Proyecto con configuración de inicio de sesión
  • Un ProjectFlow con type = "login"
  • Validación de correo electrónico habilitada en tu flujo de proyecto

Configuración Inicial​

Si no has creado un proyecto y un projectFlow con la propiedad type = "login", sigue estas guías:

Flujo de Implementación​

El flujo de acceso por correo electrónico consta de dos pasos principales:

  1. Crear Validación de Correo Electrónico - Generar un OTP y enviarlo al correo electrónico del usuario
  2. Validar Validación de Correo Electrónico - Verificar el OTP ingresado por el usuario

Paso 1: Crear Validación de Correo Electrónico​

Primero, crea una validación de correo electrónico para enviar un OTP a la dirección de correo electrónico del usuario.

Endpoint:

POST https://api.verifik.co/v2/email-validations

Ejemplo de Solicitud:

import axios from 'axios';

const options = {
method: 'POST',
url: 'https://api.verifik.co/v2/email-validations',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <your_token>'
},
data: {
project: 'your_project_id',
projectFlow: 'your_project_flow_id',
email: 'user@example.com',
type: 'login',
redirectUrl: 'https://yourapp.com/success'
}
};

try {
const { data } = await axios.request(options);
console.log('Email validation created:', data);
} catch (error) {
console.error('Error creating email validation:', error);
}

Respuesta:

{
"data": {
"_id": "email_validation_id",
"email": "user@example.com",
"status": "pending",
"otp": "123456",
"expiresAt": "2024-01-15T11:30:00Z",
"createdAt": "2024-01-15T10:30:00Z"
}
}

Paso 2: Validar Validación de Correo Electrónico​

Después de que el usuario recibe el OTP por correo electrónico, valídalo para completar el proceso de inicio de sesión.

Endpoint:

POST https://api.verifik.co/v2/email-validations/validate

Ejemplo de Solicitud:

import axios from 'axios';

const options = {
method: 'POST',
url: 'https://api.verifik.co/v2/email-validations/validate',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <your_token>'
},
data: {
emailValidationId: 'email_validation_id',
otp: '123456'
}
};

try {
const { data } = await axios.request(options);
console.log('Email validation successful:', data);
} catch (error) {
console.error('Error validating email:', error);
}

Respuesta:

{
"success": true,
"data": {
"status": "validated",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"appLogin": {
"_id": "app_login_id",
"type": "email",
"status": "completed",
"emailValidation": "email_validation_id"
}
}
}

Paso 3: Recuperar Objeto de Inicio de Sesión de Aplicación​

Después de una validación de correo electrónico exitosa, usa el token para recuperar el objeto AppLogin completo con todos sus detalles.

Endpoint:

GET https://api.verifik.co/v2/app-logins/{appLoginId}

Ejemplo de Solicitud:

import axios from 'axios';

const options = {
method: 'GET',
url: 'https://api.verifik.co/v2/app-logins/app_login_id',
params: {
'populates[]': ['emailValidation']
},
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <your_token>'
}
};

try {
const { data } = await axios.request(options);
console.log('App Login retrieved:', data);
} catch (error) {
console.error('Error retrieving app login:', error);
}

Respuesta:

{
"data": {
"_id": "app_login_id",
"client": "client_id",
"name": "User Login Session",
"status": "completed",
"project": "project_id",
"projectFlow": "project_flow_id",
"type": "email",
"emailValidation": {
"_id": "email_validation_id",
"email": "user@example.com",
"status": "validated",
"validationMethod": "verificationCode",
"otp": "$2a$10$encrypted_otp",
"expiresAt": "2024-01-15T11:30:00Z",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:32:00Z"
},
"phoneValidation": null,
"biometricValidation": null,
"face": null,
"accessControlLog": "access_control_log_id",
"updatedAt": "2024-01-15T10:32:00Z",
"createdAt": "2024-01-15T10:30:00Z",
"__v": 0
}
}

Resumen del Flujo Completo​

  1. El usuario inicia sesión con su dirección de correo electrónico
  2. El sistema crea validación de correo electrónico y envía OTP al correo electrónico del usuario
  3. El usuario recibe OTP por correo electrónico
  4. El usuario ingresa OTP en tu aplicación
  5. El sistema valida OTP y crea registro de AppLogin
  6. El sistema recupera objeto AppLogin con detalles completos de validación
  7. El usuario obtiene acceso con token de autenticación y datos completos de inicio de sesión

Documentación Relacionada​

Tutorial en Video​

Características​

  • Autenticación Basada en Correo Electrónico: Inicio de sesión seguro mediante verificación OTP por correo electrónico
  • Creación Automática de AppLogin: Los registros de AppLogin se crean automáticamente tras una validación exitosa
  • OTP con Límite de Tiempo: Los códigos OTP expiran por seguridad
  • Múltiples Lenguajes de Programación: Soporte para JavaScript, Python, PHP y Swift
  • Integración Completa: Tutorial de principio a fin para flujos de autenticación por correo electrónico
  • Acceso Basado en Token: Tokens de autenticación seguros para acceso a la aplicación