使用Flask-Praetorian保护Flask-Admin路由

时间:2019-10-27 22:23:22

标签: python python-3.x flask flask-admin flask-praetorian

我正在使用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

0 个答案:

没有答案