Inici de sessió amb 2FA: diferència entre les revisions

De Wiki personal d'en Guillem Serrat
Cap resum de modificació
Línia 20: Línia 20:


== Formulari d'inici de sessió ==
== Formulari d'inici de sessió ==
Al formulari es mostra dues entrades de text per introduir el nom d'usuari i la contrasenya.  
Aquest codi es divideix en 2 passos. El primer és mostrar el mateix formulari d’inici de sessió i el segon és mostrar el formulari per introduir el codi de verificació. Per determinar en quin pas està fem servir la variable “pas”<pre>
També es mostra una casella de selecció perque l'aplicatiu el "recordi"
$pas = 1; // Pas 1: Login, Pas 2: Codi MFA
</pre>A l'HTML, a partir d'un condicional es decideix quin formulari mostrar<pre>
<?php if ($pas == 1): ?>
      Codi amb el formulari d'inici de sessió
<?php else: ?>
      Codi amb el formulari 2FA
</pre>Quan s'entra a la pàgina la variable $pas té el valor 1 i per tant es mostra el formulari d'inici de sessió.
 
Al formulari es mostra dues entrades de text per introduir el nom d'usuari i la contrasenya. També es mostra una casella de selecció perque l'aplicatiu el "recordi"


El formulari es visualitzaria de la següent forma:
El formulari es visualitzaria de la següent forma:

Revisió del 22:54, 10 gen 2026

Inici de sessió amb 2FA

L’usuari té la possibilitat de iniciar sessió mitjançant 2FA. El segon factor d’autenticació és el correu electrònic que ha registrat. El procés consisteix en enviar un codi de 8 dígits al correu indicat al registre i l’usuari ha d’entrar aquest codi en l’inici de sessió.

És molt important tenir en compte que per poder autenticar-se amb 2FA, cal haver verificat el correu electrònic abans.

Connexió a la BD i inici de sessió (PHP)

Sempre que es treballa amb sessions, el primer que hem de fer és iniciar-la abans d'escriure el codi HTML

session_start();

A més, hem de requerir el fitxer amb les funcions i una connexió a la BD. En aquest cas, si realitzem una autenticació errònia, haurem d'incrementar el número d'intents de login de la BD i per tant requerim la connexió d'escriptura.

require 'funcions.php';
require './connexioBD/connexioRW.php';

Comprovar si està autenticat

En cas que l'usuari està autenticat, el redirigirem directament a la seva pàgina privada. Per comprovar si l'usuari està autenticat farem servir la funció esta_autenticat.

// Redirigir si ja hi ha una sessió activa
if (esta_autenticat()) {
    header('Location: privada.php');
    exit;
}

Formulari d'inici de sessió

Aquest codi es divideix en 2 passos. El primer és mostrar el mateix formulari d’inici de sessió i el segon és mostrar el formulari per introduir el codi de verificació. Per determinar en quin pas està fem servir la variable “pas”

$pas = 1; // Pas 1: Login, Pas 2: Codi MFA

A l'HTML, a partir d'un condicional es decideix quin formulari mostrar

<?php if ($pas == 1): ?>

     Codi amb el formulari d'inici de sessió

<?php else: ?>

     Codi amb el formulari 2FA

Quan s'entra a la pàgina la variable $pas té el valor 1 i per tant es mostra el formulari d'inici de sessió.

Al formulari es mostra dues entrades de text per introduir el nom d'usuari i la contrasenya. També es mostra una casella de selecció perque l'aplicatiu el "recordi"

El formulari es visualitzaria de la següent forma:

Comprovació de credencials i estat de bloqueig

Enviament del correu electrònic amb el codi de verificació

Comprovar que el correu electrònic estigui verificat

Enviament del correu electrònic

Formulari 2FA

Comprovació del codi 2FA i inici de sessió

Comprovació del codi 2FA

Inici de sessió