Birisi, flask-security'ın parola sıfırlama jetonunda neler olduğunu anlatabilir mi?Flask Güvenlik'te simge tabanlı parola sıfırlama işlevinin açıklaması
https://github.com/mattupstate/flask-security/blob/develop/flask_security/recoverable.py
(diğer parçalar kadar bir dizin olabilir.)
Benim anlayış neyi oluyor: FORGOT_PASSWORD tarafından tanımlanan güzergah olarak
- (kod github burada) kullanıcı şifreyi sıfırlamak için bir form gönderir
- A "reset_password_token" üretilir. Bu kullanıcının ID'si (kullanıcının şifreli şifreli) şifresinden md5() mi?
- Jetonu içeren bir sıfırlama parola adresine bir bağlantı oluşturulur.
- Bu bağlantı, user.email tarafından verilen adrese gönderilmiştir.
- Kullanıcı bu bağlantıyı tıkladığında, reset_password (simge olarak tanımlanmış) bir rotaya gider. Jeton değeri, bu rota için bir argümandır.
- Yol, belirtecin geçerli olup olmadığını ve süresi dolup taşmadığını değerlendirir.
- Böyle bir durumda, bu yol yeni bir parola isteyen bir form oluşturur, ResetPasswordForm().
Bu doğru mu? Ayrıca
:
- yukarıdaki Eğer jetonu mevcut şifrenin yeni md5() içerirler yapmak güvenlidir, doğru mu? Tersine, benzersiz ve pahalı olması gerektiğini biliyorum, ama yine de?
- Son kullanma tarihi nerede saklanır?
Ben en çok spesifik olarak generate_password_reset fonksiyonu
data = [str(user.id), md5(user.password)] return _security.reset_serializer.dumps(data)
ve O belirteci seri hale getirmek itsdangerous
modülünü kullanıyor reset_password_token_status(token)