Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan Flask-Security untuk melaksanakan pengesahan dan kebenaran pengguna

Cara menggunakan Flask-Security untuk melaksanakan pengesahan dan kebenaran pengguna

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-08-04 14:40:45
asal
1706 orang telah melayarinya

Cara menggunakan Flask-Security untuk melaksanakan pengesahan dan kebenaran pengguna

Pengenalan:
Dalam aplikasi web moden, pengesahan dan kebenaran pengguna adalah fungsi penting. Untuk memudahkan proses ini, Flask-Security ialah sambungan yang sangat berguna yang menyediakan satu siri alatan dan fungsi untuk menjadikan pengesahan dan kebenaran pengguna mudah dan mudah. Artikel ini akan memperkenalkan cara menggunakan Flask-Security untuk melaksanakan pengesahan dan kebenaran pengguna.

1. Pasang sambungan Flask-Security:
Sebelum kita mula, kita perlu memasang sambungan Flask-Security. Ia boleh dipasang melalui arahan pip, seperti yang ditunjukkan di bawah:

pip install Flask-Security
Salin selepas log masuk

2. Mulakan aplikasi Flask:
Pertama, kita perlu memulakan Flask-Security dalam aplikasi Flask. Anda perlu mengimport sambungan Flask-Security ke dalam aplikasi dan menyediakan pangkalan data SQLAlchemy yang berkaitan, seperti yang ditunjukkan di bawah:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_security import Security, SQLAlchemyUserDatastore, UserMixin, RoleMixin

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SECRET_KEY'] = 'secret_key'

db = SQLAlchemy(app)

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))

class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore)
Salin selepas log masuk

3. Cipta pangkalan data:
Flask-Security memerlukan pangkalan data untuk menyimpan maklumat pengguna dan peranan. Anda boleh menggunakan Flask-Migrate untuk mencipta jadual pangkalan data, seperti yang ditunjukkan di bawah:

from flask_migrate import Migrate

migrate = Migrate(app, db)

if __name__ == '__main__':
    app.run()
Salin selepas log masuk

Jalankan arahan berikut untuk mencipta jadual pangkalan data:

flask db init
flask db migrate
flask db upgrade
Salin selepas log masuk

4. Pendaftaran dan pengesahan pengguna:
Flask-Security menyediakan satu siri fungsi paparan untuk mengendalikan pendaftaran pengguna dan logik pengesahan. Kami boleh mengikat fungsi paparan ini melalui penghalaan Flask, seperti yang ditunjukkan di bawah:

from flask_security import login_required, LoginForm, RegisterForm, current_user

@app.route('/')
@login_required
def home():
    return 'Hello, {}!'.format(current_user.email)

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

    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user and user.password == form.password.data:
            login_user(user)
            return redirect(url_for('home'))

    return render_template('login.html', form=form)

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

    if form.validate_on_submit():
        user = User(email=form.email.data, password=form.password.data)
        db.session.add(user)
        db.session.commit()
        return redirect(url_for('login'))

    return render_template('register.html', form=form)
Salin selepas log masuk

5. Keizinan peranan:
Selain pengesahan pengguna, Flask-Security juga menyediakan fungsi keizinan peranan. Kami boleh menggunakan @roles_required penghias untuk mengehadkan hanya pengguna dengan peranan tertentu untuk mengakses laluan tertentu, seperti yang ditunjukkan di bawah:

from flask_security import roles_required

@app.route('/admin')
@roles_required('admin')
def admin():
    return 'Admin Page'
Salin selepas log masuk

6. Ringkasan:
Dengan memperkenalkan sambungan Flask-Security, kami boleh melaksanakan fungsi pengesahan dan kebenaran pengguna dengan mudah. Dalam artikel ini, kami memperkenalkan cara untuk memulakan Flask-Security, mencipta pangkalan data dan melaksanakan pendaftaran pengguna serta pengesahan serta keizinan peranan serta memberikan contoh kod yang sepadan. Dengan menggunakan Flask-Security, kami boleh menjimatkan banyak usaha pembangunan dan menyediakan aplikasi web yang lebih selamat dan boleh dipercayai.

Nota: Contoh kod di atas adalah untuk rujukan sahaja, dan mungkin perlu dilaraskan dan dikembangkan mengikut keperluan khusus dalam aplikasi sebenar.

Atas ialah kandungan terperinci Cara menggunakan Flask-Security untuk melaksanakan pengesahan dan kebenaran pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan