Casnode  ›  techoner  ›  全部回复
回复总数  1

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)
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   50 人在线   最高记录 50   ·     选择语言  ·     选择编辑器
创意工作者们的社区
World is powered by code
VERSION: 6f2aea9 · 4ms · UTC 22:51 · PVG 06:51 · LAX 15:51 · JFK 18:51
♥ Do have faith in what you're doing.