2014-04-13 17 views
9

Używam biblioteki flask-login i nie udało mi się znaleźć żadnych dobrych samouczków ani dokumentacji, w jaki sposób zabezpieczyć użytkownika przed resetowaniem hasła za pomocą wiadomości e-mail. W jakim kierunku/zasobach mogę sprawdzić, jak to zrobić? Dokładne wyszukiwanie google nie ujawniło niczego użytecznego.Resetowanie hasła logowania za pomocą butelki Flask

Odpowiedz

14

flask-login nie dbać maili resetowania hasła i innych takich rzeczy . Jest po prostu do zarządzania sesjami i ciasteczkami.

Należy użyć Flask-Security, która dodaje funkcję resetowania hasła i inne typowe funkcje związane z bezpieczeństwem do kolby. Kolba-Security korzysta z kolbą-login do obsługi sesji, ale dodaje inne funkcje na wierzchu dopełniają funkcje zabezpieczeń:

Email Potwierdzenie

W razie potrzeby można wymagać, aby nowi użytkownicy potwierdzić swój adres e-mail. Flask-Security wyśle ​​wiadomość e-mail do wszystkich nowych użytkowników za pomocą linku potwierdzającego . Po przejściu do łącza potwierdzającego, użytkownik zostanie automatycznie zalogowany.Istnieje również możliwość ponownego wysłania linku potwierdzającego o treści do podanego e-maila, jeśli użytkownik spróbuje użyć wygasłego tokenu lub utracił poprzedni e-mail. Łącza do potwierdzeń można skonfigurować tak, aby wygasały po określonym czasie.

Password Reset/Odzyskiwanie

zresetowany i odzyskiwania hasła jest dostępna, gdy użytkownik zapomni swojego lub jej hasło. Flask-Security wysyła wiadomość e-mail do użytkownika z linkiem do widoku, w którym może zresetować swoje hasło. Po wprowadzeniu hasła zostaną one automatycznie zalogowane i od tego momentu będą mogły używać nowego hasła . Linki do resetowania hasła mogą zostać skonfigurowane tak, aby wygasały po określonym czasie w postaci .

użytkownika Rejestracja

Kolba-Security jest dostarczana z podstawowym widoku rejestracji użytkownika. Ten widok jest bardzo prosty, a nowi użytkownicy potrzebują tylko adresu e-mail i adresu e-mail . Ten widok może być nadpisany [sic], jeśli proces rejestracji wymaga więcej pól.

+0

Osiąga to, co chciałem, dzięki. –

10

logika Podstawa:

  1. Tworzenie formularza resetowania hasła z email dziedzinie.
  2. Kiedy użytkownik złożyć formularz następnie należy:
    1. sprawdzić ten e-mail w bazie
    2. generować undistinguished krypto losowy klucz tajny (obok właśnie tajny klucz)
    3. sklep ten przycisk, aktualny znacznik czasu i identyfikator użytkownika do pamięci podręcznej lub baza
    4. wysłać go do wiadomości e-mail użytkownika lub sms
  3. Kiedy użytkownik stosuje tajny klucz (na przykład z adresu URL lub specjalnym formularzu) należy:
    1. zatwierdź go (istnieją, nie wygasł, nie wykorzystywane wcześniej)
    2. get identyfikator użytkownika
    3. usuwać lub znak używany jako aktualny tajny klucz
    4. dostarczyć logiki wejść/wygenerować nowe hasło.

logicznych wejść/wygenerować hasło mogą być różne:

  1. użytkownika i pokazać formularz wpisać nowe hasło - jeden raz logowania klucz formularz
  2. pokaz, aby wprowadzić hasło niż logowania, jeśli ważne
  3. wygenerować nowe hasło i wysłać je do użytkownika e-mail
  4. wygenerować nowy tajny klucz do formularza, aby wprowadzić nowe hasło i wysłać go do użytkownika e-mail
  5. wygenerowania nowego klucza tajnego zatwierdzić formularz, wysłać go za pośrednictwem wiadomości SMS, show formularza, aby wprowadzić nowe hasło i zatwierdzenie tajny klucz następnie zalogować jeśli ważny
+0

Świetna odpowiedź. Korzystanie z systemu Flask-Security ułatwiło życie, ponieważ nie musiałem pisać niczego od podstaw, ale ta metodologia jest zdecydowanie przydatna. –

Powiązane problemy