* Date: 2019/6/19 * Time: 6:35 PM */ namespace app\middleware; use app\model\UserInfo; use app\util\ErrorCode; use app\util\ErrorResponse; use think\facade\Config; use think\facade\Env; use think\Request; class ApiCheck { /** * 在进行业务前处理用户token * @param Request $request * @param \Closure $next * @return mixed * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function handle(Request $request, \Closure $next) { $open_id = $request->param('open_id'); if(empty($open_id)){ $open_id = Env::get('app_debug') ? 'wxaffadsf31Dfaf93wxaffadsf31Dfaf93' : ''; } if (empty($open_id)) { return ErrorResponse::createError( ErrorCode::ERROR_OPENID_REQUIRED, '缺失参数open_id' ); } $user = UserInfo::where('open_id', $open_id)->find(); if(empty($user)){ return ErrorResponse::createError( ErrorCode::ERROR_USER_NOT_EXISTS, '用户不存在或者open_id错误' ); } $request->user = $user; //对于 admin -> token //对于 user -> open_id $response = $next($request); return $response; } }