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

### 概述

> 注意:当前在`/route/route.php`中写了分组路由,不需要可以直接删除

接口执行流程为:

1. 前端访问`/api/xx/xx`请求接口

2. `Controller`基类进行jwt验证

3. 执行具体`Controller`中的业务逻辑

4. 返回执行的结果

### 接口开发

- 在`/application/api/controller`文件夹下创建相应的控制器,继承Controller类。

- 配置`$authExcept`变量,把无需jwt验证的方法加入到里面;此变量不可直接在基类中配置,必须在具体业务控制器中进行配置。

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

### 安全校验

安全校验采用`jwt`进行校验,`jwt`采用`lcobucci/jwt`扩展包,在`/application/api/traits/ApiAuth.php`中封装了相关方法。

#### 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',

//颁发者

'iss' => 'iss',

//使用者

'aud' => 'aud',

//过期时间,以秒为单位,默认2小时

'ttl' => 30,

//刷新时间,以秒为单位,默认14天,以

'refresh_ttl' => 1209600,

//是否自动刷新,开启后可自动刷新token,附在header中返回,name为`Authorization`,字段为`Bearer `+$token

'auto_refresh' => true,

//黑名单宽限期,以秒为单位,首次token刷新之后在此时间内原token可以继续访问

'blacklist_grace_period' => 60

];

~~~

### 返回数据

返回数据为json格式,正常情况下会包括`code`,`msg`,`data`字段,分别代表状态码,消息,主数据。

```json

{

"code": 200,

"msg": "success",

"data": {}

}

```

### 返回状态码

> 因 HTTP 状态码多的吓人,所以目前只采用`200/400/401/404/404/500`态码来控制接口的返回。

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

* 400 表示客户端错误。例如输入的字段类型不匹配等

* 401 未登录/登录状态失效。代表需要客户端发起登录流程

* 403 表示此用户无权限。例如普通用户无法观看vip课程,可直接返回403

* 404 接口不存在。访问了不存在的接口就会返回404

* 500 代表失败。具体原因可参考body内msg字段

其中,我们用的最多的就是`200`和`500`了,401在登录鉴权的地方可以自动返回,一般无需自己处理,`404`系统也自定义好了,无需手动处理,`500`在`/application/common/exception/Http.php`文件中也做了捕获处理。`400`和`403`可酌情使用,不想麻烦的也可以直接用500来代替。

### 开发示例

#### 登录

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

#### 资源控制器

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值