Skip to content

Manual Técnico AppSennovaLab

Documentación Técnica del Archivo login.php en /appSennovalab/views/site/

Español

¿Para qué es?

El archivo login.php implementa la interfaz de inicio de sesión de SennovaLab. Utiliza los componentes de formulario de Yii2 y Bootstrap 5 para crear un formulario de login seguro y accesible.

Definición de la Carpeta

Se encuentra en /appSennovalab/views/site/, directorio que contiene las vistas principales relacionadas con el SiteController. Esta ubicación sigue las convenciones de Yii2 para vistas de autenticación.

Propósito

El propósito principal es:

  • Proporcionar un formulario de inicio de sesión
  • Implementar validación de credenciales
  • Ofrecer opciones de recuperación de contraseña
  • Manejar la verificación de email
  • Mantener la seguridad de la sesión

Funciones

  • Componentes del Formulario:

    • Campo de nombre de usuario
    • Campo de contraseña
    • Opción “Recordarme”
    • Enlaces de recuperación
    • Validación de campos
  • Características de Seguridad:

    • Protección CSRF
    • Validación del lado del cliente
    • Mensajes de error personalizados
    • Bloqueo por intentos fallidos

Características Técnicas / Technical Features

  • Integración con el sistema de autenticación de Yii2
  • Validación de formularios Bootstrap
  • Sistema de mensajes flash
  • Manejo de sesiones seguras
  • Integración con el modelo LoginForm
  • Protección contra ataques de fuerza bruta
  • Redirección post-login configurable

Funcionalidades de Seguridad / Security Features

  • Validación de tokens CSRF
  • Encriptación de contraseñas
  • Tiempo límite de sesión
  • Registro de intentos de inicio de sesión
  • Bloqueo temporal de cuenta
  • Verificación de email
  • Protección contra inyección SQL

English

What is it for?

The login.php file implements SennovaLab’s login interface. It uses Yii2 and Bootstrap 5 form components to create a secure and accessible login form.

Folder Definition

Located in /appSennovalab/views/site/, directory containing the main views related to the SiteController. This location follows Yii2 conventions for authentication views.

Purpose

The main purpose is to:

  • Provide a login form
  • Implement credential validation
  • Offer password recovery options
  • Handle email verification
  • Maintain session security

Functions

  • Form Components:

    • Username field
    • Password field
    • Remember me option
    • Recovery links
    • Field validation
  • Security Features:

    • CSRF protection
    • Client-side validation
    • Custom error messages
    • Failed attempts lockout
<?php
/** @var yii\web\View $this */
/** @var yii\bootstrap5\ActiveForm $form */
/** @var \common\models\LoginForm $model */
use yii\bootstrap5\Html;
use yii\bootstrap5\ActiveForm;
$this->title = 'Login';
?>
<div class="site-login">
<h1><?= Html::encode($this->title) ?></h1>
<!-- Mensaje Informativo / Informative Message -->
<p>Por favor, complete los siguientes campos para iniciar sesión:</p>
<!-- Formulario de Login / Login Form -->
<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
<?= $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<?= $form->field($model, 'rememberMe')->checkbox() ?>
<!-- Enlaces de Recuperación / Recovery Links -->
<div class="my-1 mx-0" style="color:#999;">
Si olvidó su contraseña puede <?= Html::a('restablecerla', ['site/request-password-reset']) ?>.
<br>
¿Necesita un nuevo email de verificación? <?= Html::a('Reenviar', ['site/resend-verification-email']) ?>
</div>
<!-- Botón de Envío / Submit Button -->
<div class="form-group">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>