日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php直接的模块接口,api(接口)模块

發(fā)布時間:2023/12/15 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php直接的模块接口,api(接口)模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

### 概述

> 注意:當前在`/route/route.php`中寫了分組路由,不需要可以直接刪除

接口執(zhí)行流程為:

1. 前端訪問`/api/xx/xx`請求接口

2. `Controller`基類進行jwt驗證

3. 執(zhí)行具體`Controller`中的業(yè)務邏輯

4. 返回執(zhí)行的結(jié)果

### 接口開發(fā)

- 在`/application/api/controller`文件夾下創(chuàng)建相應的控制器,繼承Controller類。

- 配置`$authExcept`變量,把無需jwt驗證的方法加入到里面;此變量不可直接在基類中配置,必須在具體業(yè)務控制器中進行配置。

- 在具體方法中直接返回`api_success()`或`api_error`即可。

### 安全校驗

安全校驗采用`jwt`進行校驗,`jwt`采用`lcobucci/jwt`擴展包,在`/application/api/traits/ApiAuth.php`中封裝了相關(guān)方法。

#### jwt驗證流程

![](https://img.kancloud.cn/b7/b0/b7b097362f739afa082a3913bb9e3b72_788x1542.png)

#### jwt配置

> 當自動刷新token的時候,前端保存后端傳過來的新token,此后都用新的token進行訪問。如果不想使用oken刷新可以把過期時間設置的大一些,例如1年之類的。

~~~

protected $config = [

//token在header中的name

'name' => 'token',

//加密使用的secret

'secret' => '552ac90778a976c72f7f673db174df30',

//頒發(fā)者

'iss' => 'iss',

//使用者

'aud' => 'aud',

//過期時間,以秒為單位,默認2小時

'ttl' => 30,

//刷新時間,以秒為單位,默認14天,以

'refresh_ttl' => 1209600,

//是否自動刷新,開啟后可自動刷新token,附在header中返回,name為`Authorization`,字段為`Bearer `+$token

'auto_refresh' => true,

//黑名單寬限期,以秒為單位,首次token刷新之后在此時間內(nèi)原token可以繼續(xù)訪問

'blacklist_grace_period' => 60

];

~~~

### 返回數(shù)據(jù)

返回數(shù)據(jù)為json格式,正常情況下會包括`code`,`msg`,`data`字段,分別代表狀態(tài)碼,消息,主數(shù)據(jù)。

```json

{

"code": 200,

"msg": "success",

"data": {}

}

```

### 返回狀態(tài)碼

> 因 HTTP 狀態(tài)碼多的嚇人,所以目前只采用`200/400/401/404/404/500`態(tài)碼來控制接口的返回。

* 200 代表成功。所有的接口成功返回都是200

* 400 表示客戶端錯誤。例如輸入的字段類型不匹配等

* 401 未登錄/登錄狀態(tài)失效。代表需要客戶端發(fā)起登錄流程

* 403 表示此用戶無權(quán)限。例如普通用戶無法觀看vip課程,可直接返回403

* 404 接口不存在。訪問了不存在的接口就會返回404

* 500 代表失敗。具體原因可參考body內(nèi)msg字段

其中,我們用的最多的就是`200`和`500`了,401在登錄鑒權(quán)的地方可以自動返回,一般無需自己處理,`404`系統(tǒng)也自定義好了,無需手動處理,`500`在`/application/common/exception/Http.php`文件中也做了捕獲處理。`400`和`403`可酌情使用,不想麻煩的也可以直接用500來代替。

### 開發(fā)示例

#### 登錄

登錄功能可以直接參考`/application/api/controller/AuthController.php`中的`login`方法。

#### 資源控制器

可以直接參考`/application/api/controller/UserController.php`控制器。

總結(jié)

以上是生活随笔為你收集整理的php直接的模块接口,api(接口)模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。