Lecture Notes: Creating Multi-user Login System in Laravel Using Breeze
Introduction
- Presenter: Yamin
- Objective: Develop a multi-user login system (MULO) using Laravel and Breeze.
- Concept: MULO allows both admin and users to login, redirecting them to different dashboards.
Initial Setup
Create Laravel Project
- Open Command Prompt (CMD) and navigate to the desired location.
- Run the command:
composer create-project laravel/laravel project-name (e.g., multi).
- Verify project creation.
Run Laravel Project
- Open CMD in the project directory.
- Run:
php artisan serve to start the server.
- Access the project via browser.
Database Configuration
Set Up Database
- Open your code editor (e.g., Sublime Text, VS Code).
- Edit
.env file:
- Set
DB_CONNECTION to mysql.
- Define
DB_DATABASE as multi.
- Use a tool like phpMyAdmin to create the database
multi.
Install Laravel Breeze
Installation Steps
- In CMD, run:
composer require laravel/breeze --dev.
- Install Breeze:
php artisan breeze:install.
- Select options (e.g., Blade for templates, enable PHPUnit).
- Run:
npm install and npm run build.
Modify User Table
Migration Changes
- In the
migrations folder, modify the user table to include a user_type column with default user.
- Execute migration:
php artisan migrate.
User Registration and Role Assignment
Register Users
- Register users via the Laravel registration form (e.g., user, admin).
- Manually change
user_type in database for roles (e.g., admin).
Create Routes and Controllers
Admin Routing
- Create
HomeController using CMD: php artisan make:controller HomeController.
- Define routes in
web.php for admin dashboard.
- Add logic to HomeController to return appropriate views.
Login Functionality
Authenticate Users
- Modify
AuthenticatedSessionController.php:
- Add condition to redirect admin to admin dashboard.
- Fallback for regular users to user dashboard.
Middleware for Access Control
Protect Admin Dashboard
- Create middleware via CMD:
php artisan make:middleware Admin.
- Define access logic to restrict users without admin role.
- Register middleware in
bootstrap/app.php.
- Apply middleware to routes.
Finalize Setup
- Test login and redirection for both user types.
- Ensure unauthorized users cannot access restricted pages.
Conclusion
- Successfully implemented MULO using Laravel Breeze.
- Extended possibilities for multiple user roles.
- For additional user types (e.g., manager), create additional middleware.
Tips: Keep practicing and exploring further Laravel features for more robust applications.