flask-jwt-extended
关于权限校验,采用 jwt + 自定义装饰实现。在 web 端中使用 localStore 实现。
如果对 jwt 不了解的,可以先看一下这篇文章:flask jwt 专题内容
初始化插件
python
from flask_jwt_extended import JWTManager
from pear_admin.orms.user import UserORM
jwt = JWTManager()
@jwt.user_identity_loader
def user_identity_lookup(user):
return user.id
@jwt.user_lookup_loader
def user_lookup_callback(_jwt_header, jwt_data):
identity = jwt_data["sub"]
return UserORM.query.filter(UserORM.id == identity).one_or_none()
python
from flask import Flask
from .init_db import db, migrate
from .init_script import register_script
from .init_jwt import jwt // [!code ++]
def register_extensions(app: Flask):
db.init_app(app)
migrate.init_app(app, db)
jwt.init_app(app) // [!code ++]
register_script(app)