Inici de sessió amb 2FA
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:
