添加中间件支持post via json

This commit is contained in:
EasyChen 2022-01-30 21:25:08 +08:00
parent 17d0f894f2
commit 9d7654c110
3 changed files with 23 additions and 1 deletions

View File

@ -65,5 +65,6 @@ class Kernel extends HttpKernel
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'auto.login' => \App\Http\Middleware\TokenLogin::class,
'auth.member' => \App\Http\Middleware\EnsureMember::class,
'json.request' => \App\Http\Middleware\JsonRequest::class,
];
}

View File

@ -0,0 +1,21 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class JsonRequest
{
public function handle(Request $request, Closure $next)
{
if (in_array($request->method(), ['POST', 'PUT', 'PATCH'])
&& $request->isJson()
) {
$data = $request->json()->all();
$request->request->replace(is_array($data) ? $data : []);
}
return $next($request);
}
}

View File

@ -30,7 +30,7 @@ Route::post('/login/idtoken', 'App\Http\Controllers\PushDeerUserController@login
Route::post('/login/wecode', 'App\Http\Controllers\PushDeerUserController@wechatLogin');
// 推送消息
Route::any('/message/push', 'App\Http\Controllers\PushDeerMessageController@push');
Route::middleware('json.request')->any('/message/push', 'App\Http\Controllers\PushDeerMessageController@push');
// 自动登入,适用于通过 token 进行操作的接口