Bu bölümde Bölüm 3'te oluşturulan giriş formu ve Bölüm 4'te kurulan veritabanı bir araya getirilerek gerçek bir kullanıcı giriş sistemi oluşturulacak.
Kullanıcı şifreleri hiçbir zaman düz metin olarak saklanmamalıdır. Bunun yerine şifre hash'leme kullanılır. Flask'ın temel bağımlılıklarından olan Werkzeug paketi bu işlevi sağlar.
>>> from werkzeug.security import generate_password_hash, check_password_hash
>>> hash = generate_password_hash('foobar')
>>> check_password_hash(hash, 'foobar')
True
>>> check_password_hash(hash, 'barfoo')
False
app/models.py Dosyasına Şifre Metodlarını Eklefrom werkzeug.security import generate_password_hash, check_password_hash
class User(db.Model):
# ...
def set_password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
Kullanım örneği:
>>> u = User(username='susan', email='susan@example.com')
>>> u.set_password('mypassword')
>>> u.check_password('anotherpassword')
False
>>> u.check_password('mypassword')
True
Flask-Login eklentisi kullanıcı oturum yönetimini sağlar: giriş yapmış kullanıcıyı takip eder, farklı sayfalara geçişte oturumu korur ve "beni hatırla" özelliğini destekler.
(venv) $ pip install flask-login
app/__init__.py Dosyasını Güncelle