Flask-login sebenarnya tidak memiliki backend pengguna, itu hanya menangani mesin sesi untuk membantu Anda login dan logout pengguna. Anda harus memberi tahunya (dengan mendekorasi metode), apa yang mewakili pengguna dan juga terserah Anda untuk mengetahui cara mengetahui apakah pengguna "aktif" atau tidak (karena "aktif" dapat berarti hal yang berbeda dalam aplikasi yang berbeda ).
Anda harus membaca dokumentasi dan pastikan apa yang dilakukannya dan tidak . Di sini saya hanya akan berkonsentrasi untuk menghubungkannya dengan backend db.
Untuk memulai, tentukan objek pengguna; yang mewakili properti untuk pengguna Anda. Objek ini kemudian dapat mengkueri database, atau LDAP, atau apa pun dan ini adalah pengait yang menghubungkan mekanisme login dengan backend database Anda.
Saya akan menggunakan contoh login skrip untuk tujuan ini.
class User(UserMixin):
def __init__(self, name, id, active=True):
self.name = name
self.id = id
self.active = active
def is_active(self):
# Here you should write whatever the code is
# that checks the database if your user is active
return self.active
def is_anonymous(self):
return False
def is_authenticated(self):
return True
Setelah objek pengguna dibuat, Anda perlu menulis metode yang memuat pengguna (pada dasarnya, membuat instance dari User
kelas dari atas). Metode ini dipanggil dengan id pengguna.
@login_manager.user_loader
def load_user(id):
# 1. Fetch against the database a user by `id`
# 2. Create a new object of `User` class and return it.
u = DBUsers.query.get(id)
return User(u.name,u.id,u.active)
Setelah Anda memiliki langkah-langkah ini, metode login Anda melakukan ini:
-
Memeriksa untuk melihat apakah nama pengguna dan sandi cocok (dengan database Anda) - Anda harus menulis kode ini sendiri.
-
Jika otentikasi berhasil, Anda harus meneruskan instance pengguna ke
login_user()