Vediamo quale è il Flusso in Magento 2 per il Reset della Password.
Quando viene effettuato il reset della password dal frontend dell’e-commerce, ossia dalla pagina customer/account/forgotpassword/
Magento 2 agisce in questo modo
1. invia una email contenente una url per accedere al form di reset; la url contiene l’id cliente e il token associato al cliente. Il token ha una validità, impostata in ore attraverso il pannello di configurazione, sezione “Stores -> Configuration -> Customer Configuration -> Password Options -> Recovery Link Expiration Period (hours)”
2. aggiorna l’anagrafica cliente impostando, nel record della tabella “customer_entity”,
a. il campo “updated_at” con data e ora di invio dell’email
b. aggiorna il campo “rp_token_created_at” con data e ora di invio dell’email
c. Il campo “rp_token” con il nuovo token
3. Registra un record, nella tabella “password_reset_request_event”; il valore del campo”request_type” è 1 in caso di reset per un utente con accesso al pannello di amministrazione, è 0 in caso di cliente con accesso, quindi, al frontend
Quando viene aperto il link inviato tramite email, si accede alla pagina “customer/account/createPassword” e qui Magento
1. Controlla la validità del token tramite l’id cliente
2. Confronta il timestamp del token, generato dal valore del campo “customer_entity.rp_token_created_at”, con quello corrente e verifica la condizione (timestampToken > timestamp)
a. Se la condizione è VERA, mostra il form per impostare la nuova password
b. Se la condizione è FALSA, mostra il messaggio di token scaduto e blocca l’esecuzione