# 开放接口权限 针对提供给开发者的开放接口API,PhalApi Pro设计了一套完善的权限控制体系,可在不同维度进行灵活的权限控制。 ## 接口权限规则 从开发者账号类型为起点,开发者账号类型分为个人开发者、企业开发者等多种开发者类型;每种开发者账号类型下可注册多个开发者;而每个开发者可以创建多个应用;每个应用可以调用多个开放接口API。因此,整体的结构如下: ![](http://cdn7.okayapi.com/yesyesapi_20200409154500_0442e1dde533dc2868ba4d2aec6e1bea.png) ## 授权项目 授权项目,主要是针对开放接口,对应```App.*.*```系列接口,如果需要管理其他系列的接口,可以手动添加。 ![](http://cdn7.okayapi.com/yesyesapi_20200409154617_68d427a3daafcefd812c5a35eda9f7e9.png) 位于App命名空间下的接口,会自动纳入接口权限管理,因此推荐在App下扩展添加新的开放接口。 ## 授权对象 > 温馨提示:管理员账号下的全部应用,拥有全部接口权限。接口权限,主要针对开发者进行权限分配。 ### 开发者应用维度 授权对象主要是针对开发者的客户端应用,因为使用开放接口的主要对象是程序。每个开发者应用都有一个唯一的app_key,因此通过对app_key维度可进行接口权限的控制。 ### 开发者账号维度 每个开发者应用最多可属于一位开发者,因此也可以通过开发者账号进行接口权限控制。 ### 账号类型维度 最后,可以对开发者的账号类型统一进行角色权限。 因此,接口权限的授权对象可以分为:开发者应用、开发者账号和账号类型三个维度。 ## 授权优先级 根据前面的维度,对于接口权限的优先级,最高到低,依次是: > 开发者应用接口权限 -> 开发者账号接口权限 -> 账号类型接口权限 -> 默认开放接口权限 + 最高:开发者应用接口权限,通过app_key匹配规则库 + 开发者账号接口权限,通过账号ID匹配规则库 + 账号类型接口权限,通过账号等级匹配规则库 + 最低:默认开放接口权限,通过```default_app_api_rigths_is_allow```配置项指定 按优先级从高到低,依次寻找权限规则,命中即生效,进行短路判断。 > 再次温馨提示:管理员账号下的全部应用,拥有全部接口权限。接口权限,主要针对开发者进行权限分配。所以,管理员所创建的应用,只适合内部使用。 ## 接口权限规则配置 进入管理后台,可进行各个维度的接口权限配置。 ## 如何取消接口权限判断? 如果需要取消全部接口的权限判断,可以修改```default_app_api_rigths_is_allow```配置为true,但不推荐。 如果需要取消某个接口的权限判断,可以在PHP代码中配置白名单,此部分将会在技术文档进行说明。查看[接口白名单配置文档](http://docs.phalapi.net/#/v2.0/filter?id=%e7%99%bd%e5%90%8d%e5%8d%95%e9%85%8d%e7%bd%ae)。