Commit 6eed3133 authored by yinxiaoling's avatar yinxiaoling

接口验证中间件

parent 623243e9
<?php
namespace App\Http\Controllers\strategy;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Controllers\BaseController;
class InfoController extends BaseController
{
public function strategyLists(Request $request){
dd('策略列表数据');
}
}
...@@ -6,8 +6,11 @@ use Closure; ...@@ -6,8 +6,11 @@ use Closure;
use App\Http\models\users; use App\Http\models\users;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use App\User; use App\User;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Tool;
class CheckApiKey class CheckApiKey
{ {
use Tool;
/** /**
* Handle an incoming request. * Handle an incoming request.
* *
...@@ -19,6 +22,13 @@ class CheckApiKey ...@@ -19,6 +22,13 @@ class CheckApiKey
{ {
try { try {
$url=$request->url; $url=$request->url;
$api_key=$request->api_key;
$user_sn=$request->user_sn;
if (empty($url) || empty($api_key) || empty($user_sn)){
return $this->errorWithInfo('参数验证不通过', 401);
}
$param = $request->except(['url','client_info_json','source','aes','upload','fail_recall_of_reason']); $param = $request->except(['url','client_info_json','source','aes','upload','fail_recall_of_reason']);
Log::channel('api')->info('API_PARAM:'.json_encode($param)); Log::channel('api')->info('API_PARAM:'.json_encode($param));
...@@ -29,19 +39,16 @@ class CheckApiKey ...@@ -29,19 +39,16 @@ class CheckApiKey
if(strcmp($url,$md_url)){ if(strcmp($url,$md_url)){
if($_SERVER['REQUEST_SCHEME'] == 'http'){ if($_SERVER['REQUEST_SCHEME'] == 'http'){
return response()->json(array('code'=> 10001,'msg'=>'验证url失败')); return $this->errorWithInfo('验证url失败', 401);
} }
} }
$api_key=$request->api_key; $user = DB::table('users')->where('user_sn',$param['user_sn'])->first();
$user_sn=$request->user_sn;
$user = Users::where('user_sn',$param['user_sn'])->first();
if(empty($user->parent_sn)){ if(empty($user->parent_sn)){
$the_expired = $user->expired; $the_expired = $user->expired;
}else{ }else{
$puser = Users::where('user_name',$user->parent_sn)->select('expired')->first(); $puser = DB::table('users')->where('user_name',$user->parent_sn)->select('expired')->first();
$the_expired = $puser->expired; $the_expired = $puser->expired;
} }
...@@ -49,13 +56,13 @@ class CheckApiKey ...@@ -49,13 +56,13 @@ class CheckApiKey
$expiredDate =strtotime($the_expired. ' 00:00:00'); $expiredDate =strtotime($the_expired. ' 00:00:00');
if(empty($the_expired) || $expiredDate - $todayDate <= 0){ if(empty($the_expired) || $expiredDate - $todayDate <= 0){
return response()->json(array('code'=> 20008,'msg'=>'您的账号已过期,请联系管理员处理')); return $this->errorWithInfo('您的账号已过期,请联系管理员处理', 401);
} }
$request->attributes->add(['user'=>$user]);//添加参数 $request->attributes->add(['user'=>$user]);//添加参数
}catch (\Exception $e){ }catch (\Exception $e){
Log::info($e->getFile().'-'.$e->getLine().'-'.$e->getMessage()); Log::channel('api')->error($e->getFile().'-'.$e->getLine().'-'.$e->getMessage());
return response()->json(array('code'=> 500,'msg'=>$e->getMessage().'-'.$e->getLine())); return $this->errorWithInfo('验证异常', 401);
} }
return $next($request); return $next($request);
} }
......
...@@ -63,7 +63,7 @@ class DatabaseSeeder extends Seeder ...@@ -63,7 +63,7 @@ class DatabaseSeeder extends Seeder
}); });
} }
$tableName = 'task_data';//任务数据(任务已建未建) $tableName = 'strategy_task';//任务数据(任务已建未建)
if(!Schema::hasTable($tableName)){ if(!Schema::hasTable($tableName)){
//创建表语句 //创建表语句
Schema::create($tableName, function (Blueprint $table){ Schema::create($tableName, function (Blueprint $table){
......
...@@ -18,11 +18,10 @@ Route::middleware('auth:api')->get('/user', function (Request $request) { ...@@ -18,11 +18,10 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
}); });
//接口路由 //接口路由
Route::match(['get', 'post'],'login', 'LoginApiController@index'); Route::post('login', 'LoginApiController@index');
Route::match(['get', 'post'],'loginc', 'LoginCheckController@index');
Route::group(['middleware' => 'check.apikey','prefix' => 'api'], function () {
Route::group(['middleware' => 'check.apikey','namespace' => 'strategy'], function () {
Route::match(['get', 'post'],'strategyLists', 'InfoController@strategyLists');//初始化
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment