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