From b0ede1a34eb7b933e293dfd4072392347de931a0 Mon Sep 17 00:00:00 2001 From: Alain Van Driessche Date: Fri, 26 Apr 2024 14:11:16 +0200 Subject: [PATCH] Cache Route Service Provider Login controller --- app/Http/Controllers/Auth/LoginController.php | 2 +- app/Providers/RouteServiceProvider.php | 1 + composer.json | 2 +- composer.lock | 31 +++++++--------- config/hashing.php | 3 +- .../2024_04_25_151908_create_cache_table.php | 35 +++++++++++++++++++ routes/web.php | 5 +-- 7 files changed, 55 insertions(+), 24 deletions(-) create mode 100644 database/migrations/2024_04_25_151908_create_cache_table.php diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 82064e1f6..d489d50a9 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -46,7 +46,7 @@ public function __construct() /** * Redirect the user to the GitHub authentication page. */ - public function redirectToProvider($provider): Response + public function redirectToProvider($provider): RedirectResponse { return Socialite::driver($provider)->redirect(); diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 2bcd3d32e..e3d229efe 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -7,6 +7,7 @@ class RouteServiceProvider extends ServiceProvider { + /** * Define your route model bindings, pattern filters, etc. */ diff --git a/composer.json b/composer.json index 2f1c5249a..5a1d2b512 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "maatwebsite/excel": "^3.1", "martinlindhe/laravel-vue-i18n-generator": "dev-l10", "mediconesystems/livewire-datatables": "^0.10", - "predis/predis": "^1.1", + "predis/predis": "^2.2", "rappasoft/laravel-livewire-tables": "^2.11", "socialiteproviders/microsoft-azure": "^4.2", "spatie/laravel-activitylog": "^4.7", diff --git a/composer.lock b/composer.lock index 918937515..3526b8787 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "74525a95de6953abe8bcb41c4f9573c7", + "content-hash": "8b9f9b3069dc769ad7efccc17022f68c", "packages": [ { "name": "archtechx/enums", @@ -4978,27 +4978,28 @@ }, { "name": "predis/predis", - "version": "v1.1.10", + "version": "v2.2.2", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e" + "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", + "url": "https://api.github.com/repos/predis/predis/zipball/b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", + "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "~4.8" + "friendsofphp/php-cs-fixer": "^3.3", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ~9.4.4" }, "suggest": { - "ext-curl": "Allows access to Webdis when paired with phpiredis", - "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" + "ext-relay": "Faster connection with in-memory caching (>=0.6.2)" }, "type": "library", "autoload": { @@ -5011,19 +5012,13 @@ "MIT" ], "authors": [ - { - "name": "Daniele Alessandri", - "email": "suppakilla@gmail.com", - "homepage": "http://clorophilla.net", - "role": "Creator & Maintainer" - }, { "name": "Till Krüss", "homepage": "https://till.im", "role": "Maintainer" } ], - "description": "Flexible and feature-complete Redis client for PHP and HHVM", + "description": "A flexible and feature-complete Redis client for PHP.", "homepage": "http://github.com/predis/predis", "keywords": [ "nosql", @@ -5032,7 +5027,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v1.1.10" + "source": "https://github.com/predis/predis/tree/v2.2.2" }, "funding": [ { @@ -5040,7 +5035,7 @@ "type": "github" } ], - "time": "2022-01-05T17:46:08+00:00" + "time": "2023-09-13T16:42:03+00:00" }, { "name": "psr/cache", diff --git a/config/hashing.php b/config/hashing.php index 0e8a0bb3f..d6e44808c 100644 --- a/config/hashing.php +++ b/config/hashing.php @@ -29,8 +29,7 @@ */ 'bcrypt' => [ - 'rounds' => env('BCRYPT_ROUNDS', 12), - 'verify' => true, + 'rounds' => env('BCRYPT_ROUNDS', 12) ], /* diff --git a/database/migrations/2024_04_25_151908_create_cache_table.php b/database/migrations/2024_04_25_151908_create_cache_table.php new file mode 100644 index 000000000..b9c106be8 --- /dev/null +++ b/database/migrations/2024_04_25_151908_create_cache_table.php @@ -0,0 +1,35 @@ +string('key')->primary(); + $table->mediumText('value'); + $table->integer('expiration'); + }); + + Schema::create('cache_locks', function (Blueprint $table) { + $table->string('key')->primary(); + $table->string('owner'); + $table->integer('expiration'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cache'); + Schema::dropIfExists('cache_locks'); + } +}; diff --git a/routes/web.php b/routes/web.php index 38aad1f45..a4a8f5950 100644 --- a/routes/web.php +++ b/routes/web.php @@ -14,6 +14,7 @@ use App\Http\Controllers\AdminController; use App\Http\Controllers\Api; // use App\Http\Controllers\Auth; +use App\Http\Controllers\Auth\LoginController; use App\Http\Controllers\BadgesController; use App\Http\Controllers\CertificateController; use App\Http\Controllers\Codeweek4AllController; @@ -298,10 +299,10 @@ ->name('volunteer_store'); Route::post('/events', [EventController::class, 'store'])->middleware('auth'); Route::patch('/events/{event}', [EventController::class, 'update'])->middleware('auth'); -Route::get('login/{provider}', [Auth\LoginController::class, 'redirectToProvider']); +Route::get('login/{provider}', [LoginController::class, 'redirectToProvider']); Route::get( 'login/{provider}/callback', - [Auth\LoginController::class, 'handleProviderCallback'] + [LoginController::class, 'handleProviderCallback'] ); Route::get('/my', [EventController::class, 'my']) ->middleware('auth')