Building a TailwindCSS-Powered Laravel Application with Email Verification and Queued Jobs
A Comprehensive Guide to Creating a Seamless User Registration System with Email Verification in Laravel
Introduction
In this article, we will explore how to build a Laravel application using TailwindCSS for styling. We’ll focus on creating a custom user registration system that sends email verification links using Laravel’s queue system. This guide will walk you through the entire process, from setting up your development environment to handling user email verification and queue jobs, ensuring a smooth and professional user experience.
Prerequisites
Before we begin, make sure you have the following installed:
PHP
Composer
Laravel
XAMPP or any local server environment
Node.js and npm
Step 1: Setting Up the Laravel Project
Create a new Laravel project:
cd laravel-email-sending-with-queues
The full source code for this project is available on GitHub at the following link: new laravel-email-sending-with-queues
Configure environment settings in .env:
Step 2: Implementing User Registration
Create the Registration Controller:
Add Registration Logic in AuthController:
{
$request->validate([
‘name’ => ‘required|string|max:255’,
’email’ => ‘required|string|email|max:255|unique:users’,
‘password’ => ‘required|string|min:8|confirmed’,
]);
$user = User::create([
‘name’ => $request->name,
’email’ => $request->email,
‘password’ => Hash::make($request->password),
’email_verified_at’ => null,
‘verification_token’ => Str::random(60),
‘token_expires_at’ => Carbon::now()->addMinutes(5),
]);
// Dispatch verification email job
SendVerificationEmail::dispatch($user);
return redirect(‘/’)->with(‘success’, ‘Registration successful! Please check your email to verify your account.’);
}
Step 3: Sending Verification Email Using Queue
Create Email Job:
Modify Job to Send Email:
{
Mail::to($this->user->email)->send(new VerifyEmail($this->user));
}
Ensure Queue Worker is Running:
Step 4: Creating and Sending Verification Email
Create VerifyEmail Mailable:
Modify VerifyEmail Mailable:
{
return $this->markdown(’emails.verify’)->with([
‘token’ => $this->user->verification_token,
]);
}
Step 5: Verification Email Template
Create Email Template emails/verify.blade.php:
# Verify Your Email
Please click the button below to verify your email address.
@component(‘mail::button’, [‘url’ => url(‘/verify-email/’ . $token)])
Verify Email
@endcomponent
This verification link will expire in 5 minutes.
Thanks,<br>
{{ config(‘app.name’) }}
@endcomponent
Conclusion
By following this guide, you have successfully created a Laravel application with a custom user registration system. The use of TailwindCSS provides a modern and responsive design, while the queue system ensures efficient email verification. This setup not only enhances the user experience but also improves the application’s performance.
Feel free to customize the project further and share your experience in the comments below!
The full source code for this project is available on GitHub at the following link: https://github.com/haseebmirza/laravel-email-sending-with-queues
Happy coding!