Giriş

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.


Şifre Hashleme

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.

Hash Oluşturma ve Doğrulama

>>> 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ı Ekle

from 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'e Giriş

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.

Kurulum

(venv) $ pip install flask-login

app/__init__.py Dosyasını Güncelle