Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

flask-login:tidak mengerti cara kerjanya

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:

  1. Memeriksa untuk melihat apakah nama pengguna dan sandi cocok (dengan database Anda) - Anda harus menulis kode ini sendiri.

  2. Jika otentikasi berhasil, Anda harus meneruskan instance pengguna ke login_user()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan mysqli php kompleks untuk memasukkan data jika tidak ada:mendapatkan nama kolom Duplikat '?'

  2. Lewati parameter ke baris perintah skrip MySQL

  3. Menambahkan nol di depan ke beberapa nilai di kolom di MySQL

  4. Membuat Tabel Angka di MySQL

  5. Koneksi PHP gagal:SQLSTATE[HY000] [2002] Koneksi ditolak