首页 > 解决方案 > 使用 Flask-Praetorian 保护 Flask-Admin 路由

问题描述

我正在使用Flask-Praetorian为我的 Flask API 服务器提供用户身份验证和路由保护功能。

安装Flask-Admin到应用程序后,我注意到/admin路由不受用户身份验证的保护。

我们如何使用Flask-Praetorian来保护路由Flask-Admin

使用 Python 3.7.4、Flask 1.1.1、flask-praetorian 1.0.0、Flask-Admin 1.5.4、Flask-SQLAlchemy 2.4.1

from flask_sqlalchemy import SQLAlchemy
from flask_praetorian import Praetorian
from flask_admin import Admin

db = SQLAlchemy()
guard = Praetorian()
admin = Admin()

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)

    ...


def create_app():
    app = Flask(__name__)

    db.init_app(app)
    guard.init_app(app, User)
    admin.init_app(app)

    # Example of protected route
    @app.route('/protected', methods=['GET'])
    @auth_required
    def protected():
        return jsonify({'logged_in': 'true'})

    return app

标签: pythonpython-3.xflaskflask-adminflask-praetorian

解决方案


推荐阅读