Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Log Masuk Flask: Pengesahan pengguna dalam aplikasi web Python

Log Masuk Flask: Pengesahan pengguna dalam aplikasi web Python

WBOY
WBOYasal
2023-06-17 08:50:091688semak imbas

Log Masuk Kelalang: Pengesahan Pengguna dalam aplikasi web Python

Dalam pembangunan aplikasi web berasaskan Python, keselamatan dan pengesahan pengguna adalah bahagian penting. Flask-Login ialah perpustakaan Python yang sangat baik yang membantu pembangun menambahkan fungsi pengesahan dengan mudah pada aplikasi Flask mereka dan menyediakan cara yang mudah dan fleksibel untuk mengendalikan log masuk dan log keluar pengguna.

Artikel ini akan memperkenalkan anda kepada fungsi asas dan penggunaan Flask-Login dan menerangkan sebab ia merupakan salah satu pilihan pertama untuk pengesahan dalam aplikasi web Python.

Fungsi asas Flask-Login

Flask-Login ialah perpustakaan Python yang membolehkan pembangun melaksanakan pengesahan dan pengurusan pengguna dengan cepat dan boleh dipercayai. Ia menyediakan ciri utama berikut:

  1. Log masuk dan log keluar pengguna

Dengan Log Masuk Flask, anda boleh dengan mudah menyediakan penghalaan untuk log masuk dan log keluar pengguna serta mengurus sesi pengguna . Ini bermakna aplikasi anda boleh menjejaki pengguna yang log masuk dan log keluar jika perlu.

  1. Pengurusan Sesi Pengguna

Log Masuk Flask menggunakan pengurus yang dipanggil "Sesi" untuk mengendalikan sesi pengguna. Pengurus ini boleh menyimpan ID pengguna secara automatik dalam kuki yang disulitkan dan mendapatkannya semula apabila diperlukan.

  1. Kawalan Akses

Flask-Login membolehkan pembangun mengkonfigurasi bahagian mana yang memerlukan pengesahan dan menyediakan beberapa fungsi asas kawalan akses. Sebagai contoh, anda boleh mengkonfigurasi halaman yang hanya boleh diakses oleh pengguna log masuk dan menghalang akses tanpa kebenaran.

  1. Proses Pengesahan

Flask-Login juga menyediakan proses pengesahan terbina dalam. Ini membolehkan pembangun menambahkan logik pengesahan pengguna mereka sendiri dengan mudah pada aplikasi mereka.

Pengesahan Pengguna menggunakan Flask-Login

Sekarang kita telah membincangkan fungsi asas Flask-Login, mari lihat cara menggunakannya dalam aplikasi Flask untuk pengesahan pengguna .

Pertama, anda perlu memasang perpustakaan Log Masuk Flask. Anda boleh memasangnya menggunakan arahan pip:

pip install flask-login

Setelah anda memasang Flask-Login, anda boleh mula menggunakannya. Cara paling mudah ialah mengimportnya ke dalam aplikasi anda:

from flask_login import LoginManager, UserMixin, login_required, login_user, logout_user, current_user

Import ini akan membolehkan anda menggunakan fungsi utama Flask-Login.

Langkah seterusnya ialah mencipta aplikasi Flask dan memulakan LoginManager. Anda boleh mencipta aplikasi Flask yang dipanggil aplikasi seperti ini:

from flask import Flask

app = Flask(__name__)
app.secret_key = 'your secret key'

login_manager = LoginManager()
login_manager.init_app(app)

Di sini kami mencipta aplikasi Flask yang dipanggil aplikasi dan menyediakan kunci kepada aplikasi supaya Flask boleh menyulitkan kuki Sesi. Selepas itu, kami mencipta objek LoginManager bernama login_manager dan memulakannya melalui kaedah init_app().

Kadangkala, aplikasi anda mungkin memerlukan model pengguna tersuai. Dalam kes ini, anda perlu mencipta model Pengguna yang memanjangkan UserMixin dan melaksanakan beberapa kaedah yang diperlukan (cth. get_id()).

Berikut ialah contoh mudah model pengguna tersuai:

class User(UserMixin):
    pass

Sekarang, mari kita anggap bahawa anda telah menyediakan model pengguna anda sendiri dan mahu pengguna log masuk ke aplikasi anda.

Mula-mula buat laluan untuk panel kawalan pentadbir dan konfigurasikannya supaya hanya membenarkan akses kepada pengguna log masuk:

@app.route('/admin')
@login_required
def admin():
    return 'Welcome to the admin panel!'

Laluan ini hanya akan membenarkan akses kepada pengguna log masuk. Jika pengguna yang tidak log masuk cuba mengakses laluan ini, mereka akan diubah hala ke halaman log masuk.

Seterusnya buat laluan untuk mengendalikan halaman log masuk pengguna:

@app.route('/login', methods=['GET', 'POST'])
def login():

    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']

        # Your authentication logic goes here

        user = User()
        user.id = username
        
        # Login the user
        login_user(user)

        return redirect(url_for('admin'))

    return render_template('login.html')

Dalam laluan ini, kami mula-mula menyemak sama ada kaedah yang diminta adalah POST. Jika ya, kami mendapatkan semula nama pengguna dan kata laluan yang diserahkan dan melaksanakan logik pengesahan kami sendiri. Kami kemudian mencipta objek Pengguna baharu dan log masuk ke dalam aplikasi kami. Jika pengesahan berjaya, kami akan diubah hala ke panel kawalan pentadbir kami.

Akhirnya buat laluan untuk mengendalikan log keluar pengguna:

@app.route('/logout')
def logout():
    logout_user()
    return redirect(url_for('index'))

Laluan Log Keluar hanya memanggil fungsi logout_user() dan mengubah hala pengguna ke halaman utama.

Kesimpulan

Artikel ini memperkenalkan fungsi asas Flask-Login dan cara menggunakannya untuk pengesahan pengguna. Flask-Login ialah perpustakaan Python yang ringkas dan fleksibel yang memudahkan untuk menambah keupayaan pengesahan pada aplikasi Flask anda dan menyediakan banyak ciri berguna seperti pengurusan sesi, kawalan akses dan aliran pengesahan terbina dalam.

Jika anda sedang membangunkan aplikasi web berasaskan Python dan perlu mengesahkan pengguna, Flask-Login ialah pilihan utama untuk dipertimbangkan.

Atas ialah kandungan terperinci Log Masuk Flask: Pengesahan pengguna dalam aplikasi web Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn