Защита маршрутов Flask-Admin с использованием Flask-Praetorian - PullRequest
0 голосов
/ 28 октября 2019

Я использую Flask-Praetorian, чтобы предоставить моему серверу Flask API функции аутентификации пользователей и защиты маршрутов.

После установки Flask-Admin в приложение я заметил, что /admin маршруты не защищены аутентификацией пользователя.

Как мы можем использовать Flask-Praetorian для защиты маршрутов Flask-Admin?

Использование Python 3.7.4, Flask 1.1.1, флакон-преторианец 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
...