2014-04-13 18 views
9

Sto utilizzando la libreria flask-login e non sono riuscito a trovare alcun tutorial o documentazione valida su come consentire all'utente di reimpostare la password tramite un'email. Quale direzione/risorse posso guardare su come fare questo? Una ricerca approfondita su google non ha rivelato nulla di utile. la logica di baseFlask-Login Password Reset

risposta

14

flask-login non prendersi cura di e-mail di password reset e altre cose del genere . È lì solo per gestire sessioni e cookie.

È necessario utilizzare Flask-Security che aggiunge la funzionalità di reimpostazione della password e altre funzionalità relative alla sicurezza comuni alla beuta. Flask-Security utilizza pallone-login per gestire le sessioni, ma aggiunge altre funzionalità in cima per completare le caratteristiche di sicurezza:

Conferma

Se lo si desidera è possibile richiedere che i nuovi utenti confermano il loro indirizzo email. Flask-Security invierà un messaggio di posta elettronica a tutti i nuovi utenti con un link di conferma . Navigando al link di conferma, l'utente verrà automaticamente registrato.C'è anche la possibilità di inviare nuovamente un link di conferma a un dato messaggio di posta elettronica se l'utente tenta di utilizzare lo un token scaduto o ha perso l'e-mail precedente. I collegamenti di conferma possono essere configurati per scadere dopo un intervallo di tempo specificato.

Password Reset/Recupero

di reset password e il recupero è disponibile per quando un utente dimentica la propria password. Flask-Security invia una e-mail all'utente con un collegamento a una vista che possono reimpostare la propria password. Una volta che la password è stata reimpostata, , vengono automaticamente registrati e possono utilizzare la nuova password da quel momento in poi. I collegamenti per la reimpostazione della password possono essere configurati per scadere dopo un intervallo specificato di .

Registrazione utente

Flask-Security viene fornito con una vista di base registrazione dell'utente. Questa vista è molto semplice e i nuovi utenti devono solo fornire un indirizzo email e la loro password. Questa vista può essere annullata [sic] se il tuo processo di registrazione richiede più campi.

+0

Ciò realizza ciò che volevo, grazie. –

10

:

  1. creare la forma reimpostazione della password con email campo.
  2. Quando l'utente Invia modulo di allora si dovrebbe:
    1. spunta questo messaggio banca dati
    2. generare undistinguished chiave crittografica casuale segreta (tasto successivo appena segreta)
    3. negozio questa chiave, timestamp corrente e identificativo utente di cache o banca dati
    4. inviarlo a e-mail o sms all'utente
  3. Quando l'utente si applicano chiave segreta (per esempio con URL o forma speciale) si dovrebbe:
    1. convalidarlo (esistono, non è scaduto, non utilizzato in precedenza)
    2. get identificativo utente
    3. eliminare contrassegnare usati attuale chiave
    4. fornire segreto logica per entrare/creare una nuova password.

logica per entrare/generare la password può essere diverso:

  1. utente di accesso e la forma spettacolo di inserire una nuova password - una volta chiave login forma
  2. show per inserire la password di login se valido
  3. generare nuova password e inviarlo all'e-mail utente
  4. generare nuova chiave segreta per modulo per immettere la nuova password e inviarlo all'e-mail utente
  5. generare nuova chiave segreta per l'approvazione modulo, inviarlo via SMS, modulo spettacolo di inserire la nuova password e la chiave segreta approvazione poi il login se valido
+0

Ottima risposta. L'uso di Flask-Security ha reso la vita un po 'più semplice in quanto non dovevo scrivere nulla da zero, ma questa metodologia è sicuramente utile. –