· Andrea Pollini · informatica · 5 min read
Autenticazione utente in Flask e Sqlite
In questo video vedremo come sviluppare un sistema di autenticazione utente in Flask e Sqlite
La gestione sicura delle autenticazioni è un elemento cruciale per qualsiasi applicazione web. Nell’era digitale, la sicurezza delle informazioni è diventata una priorità fondamentale, e la corretta implementazione di un sistema di login rappresenta il primo baluardo nella protezione dei dati utente. In questo articolo, esploreremo come creare un sistema di login sicuro utilizzando Flask, un framework leggero per lo sviluppo web in Python, e SQLite, un database leggero e versatile.
L’uso di Flask e SQLite offre una soluzione elegante e accessibile per sviluppare applicazioni web robuste. Flask, noto per la sua semplicità e flessibilità, facilita la creazione di applicazioni web senza il peso di un framework più complesso. SQLite, d’altra parte, fornisce un database incorporato, rendendo l’intero processo più agevole, specialmente per progetti di dimensioni medio-piccole.
Durante il tutorial, esamineremo passo dopo passo come implementare il sistema di login, compreso l’hashing delle password per migliorare la sicurezza e la gestione delle sessioni per tenere traccia degli utenti autenticati. Inoltre, forniremo istruzioni dettagliate su come configurare un database SQLite per archiviare in modo sicuro le informazioni degli utenti.
Affronteremo anche concetti fondamentali, come la connessione al database prima di ogni richiesta e la sua chiusura dopo, garantendo così una gestione efficiente delle risorse. Inoltre, illustreremo l’uso di Flask per la creazione di pagine HTML dinamiche, includendo la pagina di login e quella del profilo utente.
L’obiettivo di questo articolo è fornire una guida pratica e comprensibile, adatta sia ai principianti che agli sviluppatori più esperti, che vogliono approfondire la sicurezza del sistema di login nelle loro applicazioni web. La chiarezza nell’implementazione e l’attenzione alla sicurezza sono gli elementi guida di questa guida, garantendo che i lettori acquisiscano competenze utili e una solida comprensione di come sviluppare un sistema di login efficace.
Installazione dei pacchetti necessari
Per poter sviluppare un sistema di autenticazione utente in Flask e Sqlite è necessario installare solamente il paccketto flask, in quanto Sqlite è già presente di default in Python.
Creazione del database
Per creare il database Sqlite è necessario creare un file con estensione .db
e creare una tabella con i campi username
e password
.
Va notato che il campo id
è di tipo INTEGER
e PRIMARY KEY
e viene incrementato automaticamente ad ogni inserimento di un nuovo utente. Il campo created_at
è di tipo DATETIME
e viene valorizzato con la data e l’ora corrente.
Gestione delle password in un database
Le password non devono essere salvate in chiaro all’interno del database, ma devono essere crittografate. Per fare ciò è possibile utilizzare il modulo hashlib
di Python.
Questo codice genera un hash della password in chiaro, che può essere salvato all’interno del database.
Potremo quindi aprire un interprete di python e usarlo per creare l’hash della password da inserire poi nel database con un comando SQL di inserimento.
Creazione dell’applicazione Flask
Per creare l’applicazione Flask è necessario creare un file con estensione .py
e inserire il seguente codice:
Creazione delle pagine HTML
Crea due file HTML nella cartella templates all’interno del tuo progetto Flask. il primo file si chiamerà login.html
e conterrà il seguente codice, che si occuperà di mostrare il form di login:
Il secondo file si chiamerà private_page.html
e conterrà il seguente codice, che si occuperà di mostrare la pagina privata e conterrà anche il form, rappresentato da un singolo bottone, per il logout:
Esecuzione dell’applicazione
Per eseguire l’applicazione è necessario eseguire il seguente comando:
A questo punto è possibile aprire il browser e digitare l’indirizzo http://127.0.0.1:5000/
per visualizzare la pagina di login. Inserendo le credenziali corrette sarà possibile accedere alla pagina privata.