Pàgines actualitzades recentment
CKEditor 5 (Classic Build) Self-Hosted
A diferència de Summernote (que guarda les imatges en Base64 dins el text), CKEditor 5 està dis...
Seguretat AJAX a upload files de CKEditor
Aquest és un punt crític. Un endpoint de pujada d'arxius (upload-image) és, per definició, una po...
Summernote
Aquest és un exemple complet d'implementació d'un sistema de "Posts" (articles) amb l'editor Su...
L'edició: de l'HTML a l'UX
En el desenvolupament d'aplicacions web, sovint ens trobem amb la necessitat de permetre als usua...
La lògica de negoci
Lògica 2FA Activació: L'usuari va a /userdemo/setup-2fa. El servidor genera un sec...
Les rutes
Caldrà afegir les rutes necessàries a app/Config/Routes.php. // ... rutes anteriors ... // Ru...
Les vistes
Vista A: Configuració (app/Views/userdemo/setup_2fa.php) Utilitzarem qrcode.js per dibuixar el Q...
Comparativa llibreries PHP 2FA.
antonioribeiro/google2fa Vs spomky-labs/otphp Tot i que antonioribeiro/google2fa és extremadamen...
Base de dades
Migració: Actualització taula Users Necessitem dos camps nous: secret_2fa: Per guardar la...
La llibreria 2FA
Instal·lació Per no haver de programar nosaltres l'algorisme matemàtic (HMAC-SHA1 i gestió de fi...
Introducció a l'autenticació de dos factors
Què és l'Autenticació de Dos Factors (2FA)? L'autenticació de dos factors (2FA) és una capa de s...
Importar CSVs
A l'hora d'introduir informació en una base de dades, molt habitualment necessitarem incloure inf...
El filter Autentica
Filter (Autentica) Implementem la lògica d'autenticació. Important: hem de registrar l'àlies des...
Configuració de Routes
A l'arxiu app/Config/Routes.php, tens dues maneres principals d'aplicar el filtre autentica. Op...
Vistes: login/logout + dashboard
Pàgina login Fitxer: app/Views/userdemo/login.php <!DOCTYPE html> <html lang="ca"> <head> ...
Controller: login + auth + logout + dashboard
Controller (UserDemo) Fitxer: app/Controllers/UserDemo.php <?php namespace App\Controllers; ...
La BBDD: Migration + Model + Entity + Seeder
La BBDD. Migració Primer, definim l'estructura. El camp password serà un VARCHAR(255) per allotj...
Auth filter
Exemple. AuthFilter Aquest és l'estàndard per protegir rutes privades. Si l'usuari no té sessió,...
El problema
Sovint, ens quedem amb el INT AUTO_INCREMENT per comoditat, però preparar-los per a problemes del...
NanoID
NanoID és una opció fascinant que prové de l'ecosistema JavaScript. És l'equivalent modern i "hip...