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

WBOY
Lepaskan: 2023-08-04 14:40:45
asal
1594 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!

sumber:php.cn
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