Stiamo costruendo una piattaforma online per la vendita di corsi. Il progetto si articola in diverse fasi: un sistema di login sicuro è fondamentale.
Nel post precedente ti ho spiegato i motivi celati dietro questa folle idea e ci siamo allineati sulle specifiche del progetto.
“Andree come stiamo procedendo?”
Spediti, anche se gli intoppi non mancano.
Login System
Ogni utente ha la propria area riservata.
Ottimo, ma come vi accede?
In ambito Web Developing i sistemi di accesso sono gestiti con diversi standard. Uno dei più diffusi e apprezzati per semplicità, sicurezza e affidabilità è il JWT, o Json Web Token.
Un token conforme allo standard RFC7519 è un oggetto tripartito, costituito da un header, un payload e una signature.
Tradotto in soldoni, è un oggetto integrante informazioni utili a identificare l’utente che effettua una chiamata al server, confermandone l’identità e garantendo una sicura trasmissione di dati sensibili.
Quando si tratta di sviluppare un sistema di registrazione e login si aprono diverse strade.
Hand-crafted login system
La prima è quella di realizzare un sistema fatto a mano.
Possiamo scegliere di strutturare il payload del token come meglio preferiamo, ma dobbiamo sviluppare la creazione del token e cosa più delicata salvare le password, ovviamente criptate, sul database.
Potendo scegliere come gestire la sicurezza di questo progetto, opteremo per una soluzione diversa: useremo aws cognito.
AWS Cognito
Amazon Web Service dispone di un servizio formidabile denominato AWS Cognito che fornisce strumenti di accesso, registrazione e controllo degli accessi.
Le password sono salvate con molteplici livelli di criptazione e la sicurezza è garantita da Amazon.
Possiamo essere meticolosi nella gestione delle password con le soluzioni custom made… ma preferisco affidarmi all’azienda di Jeff.
Ora, saltiamo la procedura di configurazione e andiamo al sodo.
Questi sono i passi necessari per registrarsi alla piattaforma:
- L’utente fornisce email e password
- AWS Cognito crea un utente con status UNCONFIRMED e invia un’email all’indirizzo indicato
- L’utente riceve un codice di verifica che inserisce nel form
- AWS Cognito conferma il codice e modifica lo status in CONFIRMED
- L’utente (in realtà in modo automatico) accede alla piattaforma e AWS produce tre token: un JWT, un Refresh Token e un Access Token. Contemporaneamente una nuova utenza è registrata nel nostro database con lo stesso ID fornito da Amazon.
- Ogni volta che l’utente effettua una chiamata passa il JWT (in modo automatico), da cui il sistema estrae l’ID identificando univocamente il chiamante.
Ora dobbiamo personalizzare l’email di verifica e definire un sistema per il recupero password.
Il nostro sistema di registrazione e login è però attivo e funzionante. Nei prossimi post realizzerò una guida in modo da condividere con te ogni mio progresso!
Un caldo abbraccio, Andrea.
1 Comment
[…] identificato gli elementi chiave per la realizzazione del progettto, e creato un sistema per il login delgi utenti. Siamo quindi passati alla gestione delle transazioni con Stripe, e messo in secondo […]