feat: simple middleware for superadmin page

upgrade-project
ricky rx 2 years ago
parent 7bf23b0aa8
commit aa0d98f72b

@ -2,6 +2,7 @@
namespace App\Exceptions; namespace App\Exceptions;
use App\Helper\JSONResponse;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable; use Throwable;
@ -23,6 +24,11 @@ class Handler extends ExceptionHandler
*/ */
public function register(): void public function register(): void
{ {
$this->renderable(function (\Illuminate\Auth\AuthenticationException $e, $request) {
return JSONResponse::Unauthorized();
});
$this->reportable(function (Throwable $e) { $this->reportable(function (Throwable $e) {
// //
}); });

@ -8,7 +8,7 @@ use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
class LoginController extends Controller { class AuthController extends Controller {
public static function login(Request $request) { public static function login(Request $request) {
$request->validate( $request->validate(
['username' => 'required|string'], ['username' => 'required|string'],
@ -33,4 +33,9 @@ class LoginController extends Controller {
'token' => $token] 'token' => $token]
]); ]);
} }
// check in middleware
public static function check(Request $request) {
return JSONResponse::Success();
}
} }

@ -0,0 +1,21 @@
<?php
namespace App\Http\Middleware;
use App\Helper\JSONResponse;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class UserAuthMiddleware
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response {
if(!$request->user()->is_active) return JSONResponse::Unauthorized();
return $next($request);
}
}

@ -1,6 +1,8 @@
<?php <?php
use App\Http\Controllers\api\LoginController; use App\Http\Controllers\api\AuthController;
use App\Http\Middleware\Cors;
use App\Http\Middleware\UserAuthMiddleware;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
@ -14,7 +16,8 @@ use Illuminate\Support\Facades\Route;
| be assigned to the "api" middleware group. Make something great! | be assigned to the "api" middleware group. Make something great!
| |
*/ */
const USER_MIDDLEWARES = ['auth:sanctum', UserAuthMiddleware::class];
Route::controller(LoginController::class)->group(function() { Route::controller(AuthController::class )->group(function() {
Route::post('/login', 'login'); Route::post('/login', 'login');
Route::middleware(USER_MIDDLEWARES)->post('/auth/check', 'check');
}); });

Loading…
Cancel
Save