Blog.

Course Platform: AWS Cognito | Update 2


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
Portfolio

aws-login-system-mern-stack-aws-node-react-cognito-aws-cognito-react-node-express-auth0-JWT-token-guida-italiano-aws-cognito

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.

Taggedportfolio projectweb development


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum