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']],
];
~~~
* 配置完成后,由于此接口需要進行權限驗證,因而,需要在后臺管理中,添加此路由配置。如下圖所示。

* 后臺添加路由配置后,需要將此路由配置權限分配到對應的用戶組中,如下圖所示,這里默認添加了一個新的用戶組。路由為多級目錄時,需要全小寫,且使用 "/" 拼接路徑。

* 用戶組擁有路由權限后,需要將對應的用戶設置為此用戶組,從而擁有對應訪問權限,如下圖所示。這里默認添加了一個專門用于此接口權限驗證的新前端用戶,新用戶賬號 cms,用于接口請求。

=======================前臺=======================
* 前臺請求方面,需要攜帶 **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請求
~~~
* 其他
* 其他