diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index e6b9960..4c1dd5a 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -20,7 +20,7 @@ protected function schedule(Schedule $schedule): void */ protected function commands(): void { - $this->load(__DIR__.'/Commands'); + $this->load(__DIR__ . '/Commands'); require base_path('routes/console.php'); } diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index b1c262c..16f1bb6 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -10,7 +10,7 @@ class Handler extends ExceptionHandler /** * A list of exception types with their corresponding custom log levels. * - * @var array, \Psr\Log\LogLevel::*> + * @var array, \Psr\Log\LogLevel::*> */ protected $levels = [ // @@ -19,7 +19,7 @@ class Handler extends ExceptionHandler /** * A list of the exception types that are not reported. * - * @var array> + * @var array> */ protected $dontReport = [ // diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 004eed6..267aebb 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -4,16 +4,17 @@ use App\Models\User; use GuzzleHttp\Client; -use Illuminate\Support\Str; -use Illuminate\Http\Request; -use Illuminate\Support\Carbon; +use GuzzleHttp\Exception\GuzzleException; use Illuminate\Http\JsonResponse; +use Illuminate\Http\RedirectResponse; +use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Str; class AuthController extends Controller { - public function redirect(Request $request) + public function redirect(Request $request): RedirectResponse { $request->session()->put('state', $state = Str::random(40)); @@ -28,9 +29,9 @@ public function redirect(Request $request) return redirect()->to(config('oauth.oauth_auth_url') . '?' . $query); } - public function callback(Request $request) + public function callback(Request $request): RedirectResponse { - $state = $request->session()->pull('state'); + // $state = $request->session()->pull('state'); // if (strlen($state) > 0 && $state === $request->state) { // abort(403, 'Invalid state'); @@ -38,42 +39,48 @@ public function callback(Request $request) $http = new Client; - $authorize = $http->post(config('oauth.oauth_token_url'), [ - 'form_params' => [ - 'grant_type' => 'authorization_code', - 'client_id' => config('oauth.client_id'), - 'client_secret' => config('oauth.client_secret'), - 'redirect_uri' => config('oauth.callback_uri'), - 'code' => $request->code, - ], - ])->getBody(); + try { + $authorize = $http->post(config('oauth.oauth_token_url'), [ + 'form_params' => [ + 'grant_type' => 'authorization_code', + 'client_id' => config('oauth.client_id'), + 'client_secret' => config('oauth.client_secret'), + 'redirect_uri' => config('oauth.callback_uri'), + 'code' => $request->input('code'), + ], + ])->getBody(); + } catch (GuzzleException $e) { + } $authorize = json_decode($authorize); - $oauth_user = $http->get(config('oauth.oauth_user_url'), [ - 'headers' => [ - 'Accept' => 'application/json', - 'Authorization' => 'Bearer ' . $authorize->access_token, - ], - ])->getBody(); + try { + $oauth_user = $http->get(config('oauth.oauth_user_url'), [ + 'headers' => [ + 'Accept' => 'application/json', + 'Authorization' => 'Bearer ' . $authorize->access_token, + ], + ])->getBody(); + } catch (GuzzleException $e) { + } $oauth_user = json_decode($oauth_user); - $user_sql = User::where('email', $oauth_user->email); + $user_sql = (new User)->where('email', $oauth_user->email); $user = $user_sql->first(); - $api_token = null; + // $api_token = null; if (is_null($user)) { $name = $oauth_user->name; $email = $oauth_user->email; $password = Hash::make(Str::random(40)); - $user = User::create(compact('name', 'email', 'password')); + $user = (new User)->create(compact('name', 'email', 'password')); $request->session()->put('auth.password_confirmed_at', time()); } else { if ($user->name != $oauth_user->name) { - User::where('email', $oauth_user->email)->update([ + (new User)->where('email', $oauth_user->email)->update([ 'name' => $oauth_user->name ]); } - $api_token = $user->api_token; + // $api_token = $user->api_token; } Auth::loginUsingId($user->id, true); @@ -81,17 +88,8 @@ public function callback(Request $request) return redirect()->route('index'); } - public function reset() - { - return view('password.reset'); - } - public function confirm() - { - return view('password.confirm'); - } - - public function confirm_password(Request $request) + public function confirm_password(Request $request): JsonResponse|RedirectResponse { $request->validate($this->password_rules()); @@ -102,14 +100,14 @@ public function confirm_password(Request $request) : redirect()->intended(); } - protected function password_rules() + protected function password_rules(): array { return [ 'password' => 'required|password', ]; } - public function logout() + public function logout(): RedirectResponse { Auth::logout(); return redirect()->route('index'); diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 77ec359..4fb1a25 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,11 +2,12 @@ namespace App\Http\Controllers; +use App\Helpers\ApiResponse; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; class Controller extends BaseController { - use AuthorizesRequests, ValidatesRequests; + use AuthorizesRequests, ValidatesRequests, ApiResponse; } diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 097bf4b..02a4406 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -6,7 +6,8 @@ class HomeController extends Controller { - public function index(Request $request) { + public function index(Request $request) + { if ($request->user()) { return view('spa'); } diff --git a/app/Http/Controllers/SpaController.php b/app/Http/Controllers/SpaController.php index 94dd442..1eca838 100644 --- a/app/Http/Controllers/SpaController.php +++ b/app/Http/Controllers/SpaController.php @@ -6,9 +6,10 @@ class SpaController extends Controller { - public function __invoke(Request $request) { + public function __invoke(Request $request) + { // return view('spa'); - + } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index b6ea116..923a83d 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -2,7 +2,31 @@ namespace App\Http; +use App\Http\Middleware\Admin; +use App\Http\Middleware\Authenticate; +use App\Http\Middleware\EncryptCookies; +use App\Http\Middleware\PreventRequestsDuringMaintenance; +use App\Http\Middleware\RedirectIfAuthenticated; +use App\Http\Middleware\TrimStrings; +use App\Http\Middleware\TrustProxies; +use App\Http\Middleware\ValidateSignature; +use App\Http\Middleware\VerifyCsrfToken; +use Illuminate\Auth\Middleware\AuthenticateWithBasicAuth; +use Illuminate\Auth\Middleware\Authorize; +use Illuminate\Auth\Middleware\EnsureEmailIsVerified; +use Illuminate\Auth\Middleware\RequirePassword; +use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse; use Illuminate\Foundation\Http\Kernel as HttpKernel; +use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull; +use Illuminate\Foundation\Http\Middleware\ValidatePostSize; +use Illuminate\Http\Middleware\HandleCors; +use Illuminate\Http\Middleware\SetCacheHeaders; +use Illuminate\Routing\Middleware\SubstituteBindings; +use Illuminate\Routing\Middleware\ThrottleRequests; +use Illuminate\Session\Middleware\AuthenticateSession; +use Illuminate\Session\Middleware\StartSession; +use Illuminate\View\Middleware\ShareErrorsFromSession; +use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful; class Kernel extends HttpKernel { @@ -15,12 +39,12 @@ class Kernel extends HttpKernel */ protected $middleware = [ // \App\Http\Middleware\TrustHosts::class, - \App\Http\Middleware\TrustProxies::class, - \Illuminate\Http\Middleware\HandleCors::class, - \App\Http\Middleware\PreventRequestsDuringMaintenance::class, - \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, - \App\Http\Middleware\TrimStrings::class, - \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + TrustProxies::class, + HandleCors::class, + PreventRequestsDuringMaintenance::class, + ValidatePostSize::class, + TrimStrings::class, + ConvertEmptyStringsToNull::class, ]; /** @@ -30,18 +54,18 @@ class Kernel extends HttpKernel */ protected $middlewareGroups = [ 'web' => [ - \App\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, + EncryptCookies::class, + AddQueuedCookiesToResponse::class, + StartSession::class, + ShareErrorsFromSession::class, + VerifyCsrfToken::class, + SubstituteBindings::class, ], 'api' => [ - \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, - \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', - \Illuminate\Routing\Middleware\SubstituteBindings::class, + EnsureFrontendRequestsAreStateful::class, + ThrottleRequests::class . ':api', + SubstituteBindings::class, ], ]; @@ -53,15 +77,16 @@ class Kernel extends HttpKernel * @var array */ protected $middlewareAliases = [ - 'auth' => \App\Http\Middleware\Authenticate::class, - 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, - 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, - 'can' => \Illuminate\Auth\Middleware\Authorize::class, - 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, - 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, - 'signed' => \App\Http\Middleware\ValidateSignature::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + 'auth' => Authenticate::class, + 'auth.basic' => AuthenticateWithBasicAuth::class, + 'auth.session' => AuthenticateSession::class, + 'cache.headers' => SetCacheHeaders::class, + 'can' => Authorize::class, + 'guest' => RedirectIfAuthenticated::class, + 'password.confirm' => RequirePassword::class, + 'signed' => ValidateSignature::class, + 'throttle' => ThrottleRequests::class, + 'verified' => EnsureEmailIsVerified::class, + 'admin' => Admin::class, ]; } diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index afc78c4..c30fd20 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -13,7 +13,11 @@ class RedirectIfAuthenticated /** * Handle an incoming request. * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next + * @param Request $request + * @param Closure(Request): (Response) $next + * @param string ...$guards + * + * @return Response */ public function handle(Request $request, Closure $next, string ...$guards): Response { diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php index 3391630..94c6510 100644 --- a/app/Http/Middleware/TrustProxies.php +++ b/app/Http/Middleware/TrustProxies.php @@ -3,7 +3,7 @@ namespace App\Http\Middleware; use Illuminate\Http\Middleware\TrustProxies as Middleware; -use Illuminate\Http\Request; +use Symfony\Component\HttpFoundation\Request as RequestAlias; class TrustProxies extends Middleware { @@ -20,9 +20,9 @@ class TrustProxies extends Middleware * @var int */ protected $headers = - Request::HEADER_X_FORWARDED_FOR | - Request::HEADER_X_FORWARDED_HOST | - Request::HEADER_X_FORWARDED_PORT | - Request::HEADER_X_FORWARDED_PROTO | - Request::HEADER_X_FORWARDED_AWS_ELB; + RequestAlias::HEADER_X_FORWARDED_FOR | + RequestAlias::HEADER_X_FORWARDED_HOST | + RequestAlias::HEADER_X_FORWARDED_PORT | + RequestAlias::HEADER_X_FORWARDED_PROTO | + RequestAlias::HEADER_X_FORWARDED_AWS_ELB; } diff --git a/app/Http/Middleware/ValidateSignature.php b/app/Http/Middleware/ValidateSignature.php index 093bf64..e5cb4bd 100644 --- a/app/Http/Middleware/ValidateSignature.php +++ b/app/Http/Middleware/ValidateSignature.php @@ -11,7 +11,7 @@ class ValidateSignature extends Middleware * * @var array */ - protected $except = [ + protected array $except = [ // 'fbclid', // 'utm_campaign', // 'utm_content', diff --git a/app/Models/User.php b/app/Models/User.php index f07ace7..4e22adc 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -43,7 +43,8 @@ class User extends Authenticatable 'is_admin' => 'boolean', ]; - public function isAdmin() { + public function isAdmin() + { return $this->is_admin; } diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 2d65aac..87c58d1 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -5,7 +5,6 @@ use Illuminate\Auth\Events\Registered; use Illuminate\Auth\Listeners\SendEmailVerificationNotification; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; -use Illuminate\Support\Facades\Event; class EventServiceProvider extends ServiceProvider {