From 8788c39d448b45aefc4ebac408afb6ec2c19d081 Mon Sep 17 00:00:00 2001 From: "Christopher C. Wells" Date: Mon, 5 Apr 2021 05:41:34 -0700 Subject: [PATCH] Remove breeze boilerplate verification and registration code --- ...mailVerificationNotificationController.php | 25 ------- .../EmailVerificationPromptController.php | 23 ------- .../Auth/RegisteredUserController.php | 51 --------------- .../Auth/VerifyEmailController.php | 30 --------- app/Models/User.php | 9 --- database/factories/UserFactory.php | 1 - .../2014_10_12_000000_create_users_table.php | 1 - ...34_remove_email_verified_at_from_users.php | 34 ++++++++++ database/seeders/UserSeeder.php | 1 - resources/views/auth/register.blade.php | 58 ----------------- routes/auth.php | 15 ----- .../Auth/EmailVerificationTest.php | 65 ------------------- 12 files changed, 34 insertions(+), 279 deletions(-) delete mode 100644 app/Http/Controllers/Auth/EmailVerificationNotificationController.php delete mode 100644 app/Http/Controllers/Auth/EmailVerificationPromptController.php delete mode 100644 app/Http/Controllers/Auth/RegisteredUserController.php delete mode 100644 app/Http/Controllers/Auth/VerifyEmailController.php create mode 100644 database/migrations/2021_04_05_053134_remove_email_verified_at_from_users.php delete mode 100644 resources/views/auth/register.blade.php delete mode 100644 tests/Feature/Http/Controllers/Auth/EmailVerificationTest.php diff --git a/app/Http/Controllers/Auth/EmailVerificationNotificationController.php b/app/Http/Controllers/Auth/EmailVerificationNotificationController.php deleted file mode 100644 index 96ba772..0000000 --- a/app/Http/Controllers/Auth/EmailVerificationNotificationController.php +++ /dev/null @@ -1,25 +0,0 @@ -user()->hasVerifiedEmail()) { - return redirect()->intended(RouteServiceProvider::HOME); - } - - $request->user()->sendEmailVerificationNotification(); - - return back()->with('status', 'verification-link-sent'); - } -} diff --git a/app/Http/Controllers/Auth/EmailVerificationPromptController.php b/app/Http/Controllers/Auth/EmailVerificationPromptController.php deleted file mode 100644 index e247f95..0000000 --- a/app/Http/Controllers/Auth/EmailVerificationPromptController.php +++ /dev/null @@ -1,23 +0,0 @@ -user()->hasVerifiedEmail() - ? redirect()->intended(RouteServiceProvider::HOME) - : view('auth.verify-email'); - } -} diff --git a/app/Http/Controllers/Auth/RegisteredUserController.php b/app/Http/Controllers/Auth/RegisteredUserController.php deleted file mode 100644 index 5399dea..0000000 --- a/app/Http/Controllers/Auth/RegisteredUserController.php +++ /dev/null @@ -1,51 +0,0 @@ -validate([ - 'name' => 'required|string|max:255', - 'email' => 'required|string|email|max:255|unique:users', - 'password' => 'required|string|confirmed|min:8', - ]); - - Auth::login($user = User::create([ - 'name' => $request->name, - 'email' => $request->email, - 'password' => Hash::make($request->password), - ])); - - event(new Registered($user)); - - return redirect(RouteServiceProvider::HOME); - } -} diff --git a/app/Http/Controllers/Auth/VerifyEmailController.php b/app/Http/Controllers/Auth/VerifyEmailController.php deleted file mode 100644 index 6baa9aa..0000000 --- a/app/Http/Controllers/Auth/VerifyEmailController.php +++ /dev/null @@ -1,30 +0,0 @@ -user()->hasVerifiedEmail()) { - return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); - } - - if ($request->user()->markEmailAsVerified()) { - event(new Verified($request->user())); - } - - return redirect()->intended(RouteServiceProvider::HOME.'?verified=1'); - } -} diff --git a/app/Models/User.php b/app/Models/User.php index ee23a60..4660f1b 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -16,7 +16,6 @@ use Illuminate\Support\Facades\Auth; * @property int $id * @property string $name * @property string $email - * @property \Illuminate\Support\Carbon|null $email_verified_at * @property string $password * @property string|null $remember_token * @property \Illuminate\Support\Carbon|null $created_at @@ -28,7 +27,6 @@ use Illuminate\Support\Facades\Auth; * @method static \Illuminate\Database\Eloquent\Builder|User query() * @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value) - * @method static \Illuminate\Database\Eloquent\Builder|User whereEmailVerifiedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|User whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|User whereName($value) * @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value) @@ -62,13 +60,6 @@ final class User extends Authenticatable 'remember_token', ]; - /** - * @inheritdoc - */ - protected $casts = [ - 'email_verified_at' => 'datetime', - ]; - /** * Get the User's goals. */ diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index d89307b..57b9350 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -21,7 +21,6 @@ class UserFactory extends Factory return [ 'name' => $this->faker->name, 'email' => $this->faker->unique()->safeEmail, - 'email_verified_at' => now(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), ]; diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 621a24e..d4708bc 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -17,7 +17,6 @@ class CreateUsersTable extends Migration $table->id(); $table->string('name'); $table->string('email')->unique(); - $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); diff --git a/database/migrations/2021_04_05_053134_remove_email_verified_at_from_users.php b/database/migrations/2021_04_05_053134_remove_email_verified_at_from_users.php new file mode 100644 index 0000000..6380d60 --- /dev/null +++ b/database/migrations/2021_04_05_053134_remove_email_verified_at_from_users.php @@ -0,0 +1,34 @@ +dropColumn('email_verified_at'); + }); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('users', function (Blueprint $table) { + $table->addColumn('timestamp', 'email_verified_at')->nullable(); + }); + } +} diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php index 32368f8..796a667 100644 --- a/database/seeders/UserSeeder.php +++ b/database/seeders/UserSeeder.php @@ -16,7 +16,6 @@ class UserSeeder extends Seeder User::factory()->create([ 'name' => 'Admin', 'email' => 'admin@admin.admin', - 'email_verified_at' => now(), 'password' => '$2y$10$Y6AOmxZHpL3ZVCvwhcG1ZOctibIPgOYZyzIuaEqvmaJuZ4Xs.odxu', // Same as email. 'remember_token' => Str::random(10), ]); diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php deleted file mode 100644 index 8544a05..0000000 --- a/resources/views/auth/register.blade.php +++ /dev/null @@ -1,58 +0,0 @@ - - Register - - - - - - - - - - -
- @csrf - - -
- - - -
- - -
- - - -
- - -
- - - -
- - -
- - - -
- -
- - Already registered? - - - Register -
-
-
-
diff --git a/routes/auth.php b/routes/auth.php index 3ddf8c0..27b25c7 100644 --- a/routes/auth.php +++ b/routes/auth.php @@ -2,11 +2,8 @@ use App\Http\Controllers\Auth\AuthenticatedSessionController; use App\Http\Controllers\Auth\ConfirmablePasswordController; -use App\Http\Controllers\Auth\EmailVerificationNotificationController; -use App\Http\Controllers\Auth\EmailVerificationPromptController; use App\Http\Controllers\Auth\NewPasswordController; use App\Http\Controllers\Auth\PasswordResetLinkController; -use App\Http\Controllers\Auth\VerifyEmailController; use Illuminate\Support\Facades\Route; Route::get('/login', [AuthenticatedSessionController::class, 'create']) @@ -32,18 +29,6 @@ Route::post('/reset-password', [NewPasswordController::class, 'store']) ->middleware('guest') ->name('password.update'); -Route::get('/verify-email', [EmailVerificationPromptController::class, '__invoke']) - ->middleware('auth') - ->name('verification.notice'); - -Route::get('/verify-email/{id}/{hash}', [VerifyEmailController::class, '__invoke']) - ->middleware(['auth', 'signed', 'throttle:6,1']) - ->name('verification.verify'); - -Route::post('/email/verification-notification', [EmailVerificationNotificationController::class, 'store']) - ->middleware(['auth', 'throttle:6,1']) - ->name('verification.send'); - Route::get('/confirm-password', [ConfirmablePasswordController::class, 'show']) ->middleware('auth') ->name('password.confirm'); diff --git a/tests/Feature/Http/Controllers/Auth/EmailVerificationTest.php b/tests/Feature/Http/Controllers/Auth/EmailVerificationTest.php deleted file mode 100644 index 8b0d885..0000000 --- a/tests/Feature/Http/Controllers/Auth/EmailVerificationTest.php +++ /dev/null @@ -1,65 +0,0 @@ -create([ - 'email_verified_at' => null, - ]); - - $response = $this->actingAs($user)->get('/verify-email'); - - $response->assertStatus(200); - } - - public function testEmailCanBeVerified() - { - Event::fake(); - - $user = User::factory()->create([ - 'email_verified_at' => null, - ]); - - $verificationUrl = URL::temporarySignedRoute( - 'verification.verify', - now()->addMinutes(60), - ['id' => $user->id, 'hash' => sha1($user->email)] - ); - - $response = $this->actingAs($user)->get($verificationUrl); - - Event::assertDispatched(Verified::class); - $this->assertTrue($user->fresh()->hasVerifiedEmail()); - $response->assertRedirect(RouteServiceProvider::HOME.'?verified=1'); - } - - public function testEmailIsNotVerifiedWithInvalidHash() - { - $user = User::factory()->create([ - 'email_verified_at' => null, - ]); - - $verificationUrl = URL::temporarySignedRoute( - 'verification.verify', - now()->addMinutes(60), - ['id' => $user->id, 'hash' => sha1('wrong-email')] - ); - - $this->actingAs($user)->get($verificationUrl); - - $this->assertFalse($user->fresh()->hasVerifiedEmail()); - } -}