2017-05-09 1 views
0
authentifiziert erhalten

ich auf die Authentifizierung von Benutzern in Django bin zu arbeiten, und ich weiß, dass Django alle Hash-Passwörter in der Datenbank hält,Wie ein Hash-Passwort zu DRF senden und

so, um den Benutzer zu sichern Ich muss das Passwort in meinem Frontend (Angular2) hashen, bevor ich es an mein Backend (Django Rest Framework) sende.

Das Problem ist, dass ich nicht weiß, ob Django Passwörter hashed oder ist er in der Lage, es mit dem bestehenden zu vergleichen, und wenn ja, kann mich ein Pin auf den richtigen Weg zeigen.

jede Hilfe dankbar ist, dank

+0

Nein, Sie müssen das unverwaute Kennwort senden. Django hasht dann das Passwort und vergleicht den Hash mit dem gespeicherten Hash. – knbk

+0

Ja, @knbk ist richtig und Sie können sich https://github.com/GetBlimp/django-rest-framework-jwt zur Authentifizierung ansehen. –

+0

Ja, ich benutze DRF-jwt und sende das Passwort ohne Hash, ich wollte nur wissen, ob das die Datenübertragung beeinflussen würde (Sicherheitsseite) –

Antwort

2

Sie müssen das Passwort nicht in Angular Hash. Django wird ein von Angular verschlüsseltes Passwort nicht verstehen, da Django Passwörter auf eine andere Art und Weise hasht und keine Informationen darüber enthält, dass das, was Sie senden, ein Hash ist. Selbst wenn es dir möglich wäre, sie auf die gleiche Weise zu benutzen, würde Django es wieder hashen, was nicht funktionieren würde. Das heißt,

H(password) != H(H(password)) 

Für eine einzelne Hash-Funktion, H.

Senden Sie das Passwort als Nur-Text an den Server. Schützen Sie das Passwort, indem Sie alle Daten über TLS/SSL übertragen. Django akzeptiert das Klartext-Passwort, vergleicht die Hashes und authentifiziert den Benutzer wie gewohnt.

Verwandte Themen