- 新建一个Token控制器
<?php
namespace app\api\controller\v1;
use think\Controller;
class Token extends Controller
{
public function getToken($code='')
{
}
}
- 编写路由,注意这里是post,传过来的code安全性是有一定需求的
Route::post('api/:version/token/user','api/:version.Token/getToken');
- 编写验证器校验code参数
<?php
namespace app\api\validate;
class TokenGet extends BaseValidate
{
protected $rule=[
'code' =>'require|isNotEmpty'
];
protected $message = [
'code' =>'没有code无法获取token'
];
}
- 自定义验证规则isNotEmpty
protected function isNotEmpty($value,$rule='',$data='',$field='')
{
if(empty($value)){
return false;
}
return true;
}
- 因为有user表,所以需要创建一个User模型。
<?php
namespace app\api\model\v1;
use app\api\model\BaseModel;
class User extends BaseModel
{
}
- 比较复杂的业务建议写在service层里, 简单的,粒度比较细小的我们放在model层里。这里我们创建一个service目录,新建一个UserToken类,编写get方法,让Token控制器调用该方法实现获取token。
<?php
namespace app\api\service;
class UserToken extends Token
{
}
- 在Token控制器我们先写一段伪代码
public function getToken($code='')
{
(new TokenGet())->goCheck();
$ut = new UserToken($code);
$token = $ut->get();
return $token;
}