Skip to content

@imansi/templates-auth

4 variantes visuales de autenticación para el ecosistema Imansi. Login, Registro, 2FA y recuperación de contraseña, listos para conectar a imansi-auth-react.

npm versionLicense: MIT


¿Qué es?

@imansi/templates-auth es el paquete de páginas de autenticación del ecosistema Imansi. Proporciona componentes visuales completos — Login, Registro, 2FA, recuperación de contraseña — ya conectados a imansi-auth-react.

Cada componente:

  • Usa los hooks de imansi-auth-react directamente
  • Está construido sobre @imansi/ui y @imansi/tailwind
  • Funciona con los 6 temas y 2 modos
  • Es 100% responsive

Instalación

bash
npm install @imansi/templates-auth @imansi/tailwind @imansi/ui imansi-auth-react react-router-dom

Uso básico

jsx
import { Routes, Route } from 'react-router-dom';
import {
  Login,
  Register,
  ForgotPassword,
  ResetPassword,
  Verify2FA,
} from '@imansi/templates-auth/split';

export default function App() {
  return (
    <Routes>
      <Route
        path="/login"
        element={
          <Login
            brandName="Mi Empresa"
            registerHref="/registro"
            forgotPasswordHref="/recuperar"
          />
        }
      />
      <Route
        path="/registro"
        element={<Register brandName="Mi Empresa" loginHref="/login" />}
      />
      <Route
        path="/recuperar"
        element={<ForgotPassword backToLoginHref="/login" />}
      />
      <Route
        path="/restablecer"
        element={<ResetPassword loginHref="/login" />}
      />
      <Route
        path="/verificar-2fa"
        element={<Verify2FA cancelHref="/login" />}
      />
    </Routes>
  );
}

Variantes disponibles

VarianteDescripciónImport
splitBranding a la izquierda + form a la derecha@imansi/templates-auth/split
cardCard flotante sobre gradientes@imansi/templates-auth/card
centeredFormulario centrado sin branding@imansi/templates-auth/centered
minimalUltra simple, todo plano@imansi/templates-auth/minimal

split

Panel de branding con logo, tagline y bullets decorativos a la izquierda. Formulario a la derecha.

Ideal para: SaaS, apps B2B, productos con marca fuerte.

card

Formulario dentro de una card flotante centrada sobre un fondo con gradientes.

Ideal para: productos modernos y apps consumer.

centered

Formulario centrado sin panel de branding. Solo el logo compacto arriba.

Ideal para: apps internas y herramientas B2B.

minimal

Ultra simple. Sin sombras, sin decoraciones. Tipografía clara y espacio en blanco.

Ideal para: apps minimalistas o embebidas.


Componentes

Cada variante exporta 5 componentes: Login, Register, ForgotPassword, ResetPassword, Verify2FA.

<Login />

PropTipoDefaultDescripción
titlestring'Iniciar sesión'Título
brandNamestring'Imansi'Nombre de la marca
brandTaglinestring'Autenticación moderna...'Tagline del panel
brandLogonodenullLogo custom
registerHrefstring'/registro'Ruta al registro
forgotPasswordHrefstring'/recuperar'Ruta a recuperación
twoFactorHrefstring'/verificar-2fa'Ruta a 2FA
dashboardHrefstring'/dashboard'Ruta tras login
showOAuthbooleantrueMostrar botones OAuth
showRememberMebooleantrueCheckbox "Recordarme"
oauthProvidersstring[]autoProveedores OAuth

Comportamiento automático:

  • Llama a useAutenticacion().iniciarSesion()
  • Si el backend responde requiere2fa, redirige a twoFactorHref
  • Muestra toast.success tras login exitoso
  • Redirige a dashboardHref automáticamente

<Register />

PropTipoDefaultDescripción
titlestring'Crear cuenta'Título
showNamebooleantrueCampo de nombre
showTermsbooleantrueCheckbox de términos
loginHrefstring'/login'Ruta al login

<ForgotPassword />

PropTipoDefaultDescripción
backToLoginHrefstring'/login'Ruta al login
successTitlestring'Revisá tu correo'Título tras éxito

<ResetPassword />

Lee el token de ?token=xxx con useSearchParams.

PropTipoDefaultDescripción
loginHrefstring'/login'Ruta al login

<Verify2FA />

PropTipoDefaultDescripción
codeLengthnumber6Cantidad de dígitos
cancelHrefstring'/login'Ruta si cancela
dashboardHrefstring'/dashboard'Ruta tras verificar

Personalización

jsx
<Login
  brandName="Mi Empresa"
  brandTagline="Bienvenido a tu cuenta"
  brandLogo={<img src="/logo.svg" alt="Logo" />}
  registerHref="/signup"
  forgotPasswordHref="/forgot"
  oauthProviders={['github', 'google']}
  showOAuth={true}
  showRememberMe={true}
/>

Próximos pasos

Hecho con ❤️ en Argentina