企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 验证器功能说明 验证器 Godok\Org\Auth 验证器提供了用户登录状态保存,用户权限验证,用户及权限信息获取的功能,用户信息保存在session中,session未过期之前一直有效 默认登录后保存了如下信息 ~~~ $user=[ 'id'=>用户唯一标识, 'username'=>帐号, 'nickname'=>昵称, 'avatar'=>头像url, 'email'=>邮箱, 'phone'=>电话, 'rules'=>[1,5,6,...] /*权限id*/, 'groupids'=>[2,3,4,...]/*用户组id*/ ]; \Godok\Org\Auth::user($user); ~~~ **读用户信息** ~~~ \Godok\Org\Auth::user() //读取用户信息$user \Godok\Org\Auth::user('name') //读取$user['name'] ~~~ **写用户信息** ~~~ \Godok\Org\Auth::user( ['name'=>'test'] ) //参数1为数组表示覆盖用户信息:$use = ['name'=>'test'] \Godok\Org\Auth::set('name','test') //写$user['name'] = 'test',第二个参数也可以是数组 ~~~ **删除用户信息** ~~~ \Godok\Org\Auth::clear() //清空用户信息 \Godok\Org\Auth::set('name') //删除$user['name'] ~~~ **获取用户组信息** ~~~ \Godok\Org\Auth::getGroups(); //获取当前用户的组信息(二维数组:包括 id rules 子键) \Godok\Org\Auth::getGroups($uid); //获取指定用户的组信息(二维数组:包括 id rules 子键) ~~~ **获取用户组(id)** ~~~ \Godok\Org\Auth::getGroupids(); //获取当前用户的组(一维数组:由id组成) \Godok\Org\Auth::getGroupids($uid); //获取指定用户的组(一维数组:由id组成) ~~~ **获取用户权限(id)** ~~~ \Godok\Org\Auth::getRules(); //获取当前用户的权限(一维数组:由id组成),继承游客和登录用户组 \Godok\Org\Auth::getRules($uid); //获取指定用户的权限(一维数组:由id组成),继承游客和登录用户组 \Godok\Org\Auth::getRules($groups); //获取传入用户组信息的权限集(一维数组:由id组成),不继承 \Godok\Org\Auth::getRules($groupids); //获取指定组的权限集(一维数组:由id组成),不继承 ~~~ **手动验证** 自动验证是验证的url请求,但是有些权限不是通过请求来判断的,那么就需要在业务中手动去判断 >Auth::check($action, $uid) @$action 匹配权限规则中的action值 @$uid 缺省值是当前登录用户的id return boolen,验证通过时返回true,否则返回false 参考说明: 用传入的参数到goa_rule表中寻找规则,未找到返回false,找到继续判断用户是否拥有该权限 ~~~ Auth::check('edit') //判断:module='' && controller='' && action='edit' && condition = '' Auth::check('Uer/edit') //判断:module='' && controller='User' && action='edit' && condition = '' Auth::check('auth/User/edit?type=1') //module='auth' && controller='User' && action='edit' && condition = 'type=1' //多条用“,”或者“|”隔开,前者是“and”判断,后者是“or”判断 //如: Auth::check('edit,add,delete') Auth::check('edit|add|delete') ~~~ >手动验证是url验证的补充,不支持正则表达式 **返回权限菜单树** >\Godok\Org\Auth::menu($where, $pid) $where 为可选项 $pid 获取$pid下的子菜单,默认为0,获取所有菜单 *注意:无论传入什么参数,都只能获取到当前用户拥有的权限菜单 返回的权限菜单例子 ~~~ Array ( [0] => Array ( [id] => 1 [pid] => 0 [title] => 系统设置 [module] => [controller] => [action] => [status] => 1 [ismenu] => 1 [condition] => [icon] => fa fa-gears [listorder] => 0 [children] => Array ( [0] => Array ( [id] => 172 [pid] => 1 [title] => 用户管理 [module] => auth [controller] => User [action] => index [status] => 1 [ismenu] => 1 [condition] => [icon] => [listorder] => 1 ) ) ) [1] => Array ( [id] => 194 [pid] => 0 [title] => 个人中心 [module] => auth [controller] => Profile [action] => index [status] => 1 [ismenu] => 0 [condition] => [icon] => [listorder] => 2 ) ) ~~~ 路由验证未通过会根据请求类型返回一个错误的json数据或者一个错误提示消息 ~~~ { code : -1, msg : "请登录", url : "/auth/Login" } ~~~