最近再琢磨 casbin,支持多种 models 的权限管理方案,类似第三方类库吧,但是文档看着很难受,基于 go 写的。
model:模型 policy:规则
$path =realpath(__DIR__ . '/../config/casbin');
$modelPath = $path.'/model.conf';
$policyPath = $path .'/policy.csv';
$casbin = new Enforcer($modelPath,$policyPath);
$sub = 'tester';
$obj = 'backend';
$act = 'read';
if (true === $casbin->enforce($sub, $obj, $act)) {
// permit alice to read data1x
} else {
throw new \Exception('deny the request');
}
上面的例子就是简单 match:用户 tester 是否有 backend 后台读取的权限
casbin: https://github.com/casbin/casbin
gayhub: https://github.com/BinZhiZhu
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.