企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
1. 安装完成后,接口方面,目前有三条逻辑可使用。 * **通过 token 验证用户 api 访问权限** + 示例接口为:api/apiexdemo/token + 此请求方法为基础权限管理逻辑,与fastadmin所携带的基础api权限验证相同。即需要在 后台管理 > 会员管理 > 会员规则管理 中,添加对应路由,之后,通过 会员组管理 设置对应会员组的访问权限。最后,将对应用户归属该组,则拥有对应权限。 * **通过 账号 验证用户 api 访问权限** + 示例接口为:api/apiexdemo/account + 此验证为 apiex 扩展 api 的效果之一,后台权限设置方法同token。只是在访问时,参数中,加入 is_token=’0’ ,从而启用非 token 验证。此验证开启后,推荐加入 authSign(自定义签名验证) + authSign 自定义签名验证设置方法:在对应控制器中,设置如下代码 ``` protected $authSign = "服务端签名"; ``` 这样,就会使得匹配前台提交的 authSign 和 控制器中的 authSign 是否匹配。继而,再进行账号的权限验证。 + 前端在参数中,加入如下示例: ``` param = {'auth_sign' => 'screen'},+ ``` * **无需验证 api 访问权限** + 示例接口为:api/apiexdemo/noneedlogin + 此情景为fastadmin基础权限管理,只需要在对应控制器中,加入如下代码即可: ``` protected $noNeedLogin = '*';//设置无需登录验证 ``` + 安全起见,强烈不推荐使用此功能,尽量使用 **通过 账号 验证用户 api 访问权限**,方便对公共接口进行权限管理。 2. 在 **安装步骤** 中,给出了基于第三条api调用逻辑的使用示例。所以,这里,针对第二条调用方式 **通过 账号 验证用户 api 访问权限** ,给出使用示例,至于第一条调用方式,会在此类比说明。 * 以开发 cms 接口工具 - 栏目列表接口 为例 * 分为 后台(接口控制器)、路由、前台 三个部分进行说明 =======================后台(接口控制器)======================= * 在进行接口开发的控制器中,继承 app\common\controller\Apiex * 为了加强安全性,加入 签名字符串验证 ,即在接口对应控制器中,加入如下类 ~~~ /** * 栏目接口 */ class Channel extends \app\common\controller\Apiex { protected $authSign = "cms"; //自定义的服务器端接口签名 } ~~~ * 如上两步操作即可完成接口的配置,对应 **通过 token 验证用户 api 访问权限** 的使用逻辑,接口控制器方面的设置是一模一样的。 =======================路由======================= * 配置完控制器后,需要在对应路由配置文件中,加入对应的路由设置,若是有版本控制的接口,就需要到对应版本路由中进行路由配置。 * 下面给出 上述接口的路由配置示例 ~~~ //配置 apiload 所指引的 接口路由规则 return [ //获取 cms 栏目列表信息 'api/cms/channellist' => ['api/cms.channel/getList', ['method' => 'post']], ]; ~~~ * 配置完成后,由于此接口需要进行权限验证,因而,需要在后台管理中,添加此路由配置。如下图所示。 ![](https://img.kancloud.cn/c6/bb/c6bb96bfa3c611871a613bc8815285a8_1920x1080.png) * 后台添加路由配置后,需要将此路由配置权限分配到对应的用户组中,如下图所示,这里默认添加了一个新的用户组。路由为多级目录时,需要全小写,且使用 "/" 拼接路径。 ![](https://img.kancloud.cn/5d/27/5d2781d8a8af02741a044385d55337d0_1920x1080.png) * 用户组拥有路由权限后,需要将对应的用户设置为此用户组,从而拥有对应访问权限,如下图所示。这里默认添加了一个专门用于此接口权限验证的新前端用户,新用户账号 cms,用于接口请求。 ![](https://img.kancloud.cn/60/ae/60aea5867f3888eb0337a323fea9ba91_1920x1080.png) =======================前台======================= * 前台请求方面,需要携带 **is_token** 参数,用于切换 账号 和 Token 两方面的验证机制。参数 is_token 有两个取值:字符串的 1 和 0,其中,1 代表使用 Token ,0 代表使用 账号 ,默认为 1。 * 对应账号的参数名为 account 。 * 另外,由于控制器中,配置了 **authSign(自定义接口签名验证)**,因而,在接口中,需要同时传输此签名信息,参数名为 auth_sign。 * 若有接口版本要求,则需要传入版本信息,参数名为 version。 * 前端请求方面,参考请求参数如下: ~~~ //接口地址 $url = 'http://www.xxxxxxx.club/api/cms/channellist'; //设置请求参数 $param = [ 'version' => 'api_1.0.0', //指定api路由管理版本 'is_token' => 0, //不进行Token验证 'account' => 'cms', //权限账号 'auth_sign' => 'cms', //签名 ]; $result = query($url, $param, 'POST');//执行post请求 ~~~ * 其他 * 其他