求个完整的例子看看。 用户名,地址,权限。 写在哪里呢? 读 cookie,session,方法都知道,就是不知道写什么地方去。
flask-authz
仅仅实现权限验证,用户登录需要自行处理,用户登录后可将用户信息通过 request.header
传递给权限验证中间件。
@[app.route('/',](https://forum.casbin.com/member/app.route('/',) methods=['GET'])
// 使用装饰器,实现局部中间件
@[casbin_enforcer.enforcer
](https://forum.casbin.com/member/casbin_enforcer.enforcer
) def get_root ():
return jsonify ({'message': 'If you see this you have access'})
中间件里: https://github.com/pycasbin/flask-authz/blob/master/flask_authz/casbin_enforcer.py#L66
// 获取当前登录用户信息,https://github.com/pycasbin/flask-authz/blob/master/flask_authz/casbin_enforcer.py#L57
owner = authorization_decoder (request.headers.get (header))
//.....
// 验证用户权限
if self.e.enforce (owner, str (request.url_rule), request.method):
return func (*args, **kwargs)