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
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.
:
- creare la forma reimpostazione della password con
email
campo. - Quando l'utente Invia modulo di allora si dovrebbe:
- spunta questo messaggio banca dati
- generare undistinguished chiave crittografica casuale segreta (tasto successivo appena segreta)
- negozio questa chiave, timestamp corrente e identificativo utente di cache o banca dati
- inviarlo a e-mail o sms all'utente
- Quando l'utente si applicano chiave segreta (per esempio con URL o forma speciale) si dovrebbe:
- convalidarlo (esistono, non è scaduto, non utilizzato in precedenza)
- get identificativo utente
- eliminare contrassegnare usati attuale chiave
- fornire segreto logica per entrare/creare una nuova password.
logica per entrare/generare la password può essere diverso:
- utente di accesso e la forma spettacolo di inserire una nuova password - una volta chiave login forma
- show per inserire la password di login se valido
- generare nuova password e inviarlo all'e-mail utente
- generare nuova chiave segreta per modulo per immettere la nuova password e inviarlo all'e-mail utente
- 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
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. –
- 1. mlab reset database password
- 2. Membership di ASP.NET Reset password
- 3. Reset password MariaDB non funzionante
- 4. Identity Server v3 pagina personalizzate reset password
- 5. Link password di Firebase reset non funzionante
- 6. django-registration password reset template personalizzato non caricando
- 7. Firebase Auth non si aggiorna dopo il reset della password
- 8. Reset Resharper
- 9. ssh_exchange_identification read reset reset by peer - Homestead Laravel
- 10. evento di reset manuale, evento di reset automatico
- 11. Informa l'utente che l'e-mail non è valida utilizzando la Password Reset di Django
- 12. Rails 4 + Devise: come scrivere un test per Devise Reset Password senza RSpec?
- 13. "Reset" Amazon EC2 server
- 14. Reset scroll in ScrollView
- 15. Reset Python Spyder
- 16. Reset connessione peer Bluetooth
- 17. Reset INPUT senza FORM
- 18. Variabile Python "reset"
- 19. Cumsum condizionale con reset
- 20. reset CloudKit Discoverability permesso
- 21. Reset Homebrew Formula
- 22. HTML5 canvas "reset" fillStyle
- 23. SQL Azure reset autoincrement
- 24. Primefaces datatable reset pagination
- 25. Reset autoincremento lento
- 26. Reset setvalval on click
- 27. Reset di un setTimeout
- 28. Reset IRB Console
- 29. LocationServices.SettingsApi Reset SETTINGS_CHANGE_UNAVAILABLE flag
- 30. Heroku non reset del database
Ciò realizza ciò che volevo, grazie. –