Files
phalapi-pro/public/wiki/2x-api-righst.md
2022-03-21 11:16:38 +08:00

58 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 开放接口权限
针对提供给开发者的开放接口APIPhalApi 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)。