Ich benutze Django 1.8 für mein Projekt und ich habe versucht, mit django.contrib.auth.middleware.SessionAuthenticationMiddleware
in Middleware die andere Sitzung nach dem Zurücksetzen des Passworts abzumelden. Das ist in Ordnung, aber das Problem, mit dem ich konfrontiert bin, ist nach dem Zurücksetzen das Abmelden selbst dieser Sitzung, die das Passwort geändert hat. Ich möchte, dass nach dem Zurücksetzen des Passworts die Sitzung, in der wir das Passwort ändern, nicht abgemeldet wird. Unser user
Modell wird von AbstractUser
Django Authentifizierungsproblem nach dem Zurücksetzen des Passworts
Antwort
geerbt. Wenn Sie Ihre eigene Ansicht verwenden, um das Passwort zu ändern, können Sie die Sitzung nach dem Ändern des Passworts aktualisieren, sodass der Benutzer nicht abgemeldet wird.
Dafür können Sie update_session_auth_hash
Funktion verwenden.
Djangos user_change_password
aktualisieren die Sitzung nach der Kennwortänderung. Aber für Sie benutzerdefinierte Ansichten besitzen, können Sie update_session_auth_hash
wie folgt verwenden:
from django.contrib.auth import update_session_auth_hash
def password_change(request):
if request.method == 'POST':
form = PasswordChangeForm(user=request.user, data=request.POST)
if form.is_valid():
form.save()
update_session_auth_hash(request, form.user)
else:
...
Django docs über session invalidation on password change
Statt durch das alles geht, können Sie django-allauth
stattdessen verwenden. Es ist eine tolle App und verfügt über alle Arten von Authentifizierungsfunktionen.
@ v1k34 was ist form.user, kann ich request.user statt oder eine Zeichenfolge übergeben, weil ich ein benutzerdefiniertes Formular habe, das nur Passwort-Feld enthält. – Pramod
Ja, Sie können auch 'request.user' übergeben. Der obige Code stellt lediglich sicher, dass die Sitzungsauthentifizierung des von uns bereitgestellten Benutzers aktualisiert wird, um das Passwort zu ändern. – v1k45
- 1. FOSUserBundle: Erfolgsziel nach dem Zurücksetzen des Passworts nach Rollen
- 2. Django + Formular zum Zurücksetzen des Passworts
- 3. Fehler beim Zurücksetzen des Passworts
- 4. Fehler beim Zurücksetzen des Passworts
- 5. "temporäre" Anmeldedaten beim Zurücksetzen des Passworts?
- 6. Temporäre URL zum Zurücksetzen des Passworts generieren
- 7. Laravel: Zurücksetzen des Passworts ohne Umleitungsantwort
- 8. FOSUserBundle: Erfolgsziel nach dem Zurücksetzen des Kennworts
- 9. Sichere Möglichkeiten zum Zurücksetzen des Passworts oder zum Zurückgeben des alten Passworts
- 10. Wie erstelle ich einen Link zum Zurücksetzen des Passworts?
- 11. zeigen DEVISE Authentifizierungsschlüssel (E-Mail-Adresse) beim Zurücksetzen des Passworts
- 12. Devise Mail Vorlage für das Zurücksetzen des Passworts
- 13. setPasswordAttribute stört das Zurücksetzen des Passworts (Laravel 5.2)
- 14. Link erhalten Fehler beim Zurücksetzen des Passworts mit fosuserbundle, symfony2
- 15. Zurücksetzen des Passworts in der Passport-lokalen Strategie in Sails.js
- 16. versteckten Wert des Passworts nach Formular einreichen
- 17. Ungültiger Token-Fehler beim Zurücksetzen des Passworts in asp.net 5 rc 1 nach dem Umzug auf den neuen Server
- 18. d3 Skalierung/Übersetzung nach dem Zurücksetzen des Bereichs beibehalten
- 19. Spring Integration FTP InboundChannelAdapter stirbt nach dem Zurücksetzen des Netzwerks
- 20. Zurücksetzen des Formulars nach dem Senden in AngularJS
- 21. Verschlüsselung des Passworts
- 22. Fehler beim Verbinden mit dem Online-Fossil-Repository nach dem Ändern des Passworts
- 23. den Wert des Textbereiches nach Einreichungsformular zurücksetzen
- 24. Backbone.PageableCollection fullCollection wirkt nach dem Zurücksetzen seltsam
- 25. Python-Verschlüsselung: Verschlüsseln des Passworts mit dem öffentlichen PGP-Schlüssel
- 26. Zurücksetzen lange Django
- 27. IIS7 Authentifizierungsproblem
- 28. Zurücksetzen des Eingabefeldes? jQuery
- 29. WCF-Authentifizierungsproblem
- 30. Wie Hash-Code an die E-Mail zum Zurücksetzen des Passworts Yii2 Basic senden?
Wie setzen Sie das Passwort zurück? – Sayse