Home Laravel 9 Install Laravel Breeze for Authentication Using Laravel 11

Install Laravel Breeze for Authentication Using Laravel 11

5 min read
0
0
228

In this tutorial ,i am to going teach the Laravel Breeze.Laravel Breeze provides a simple way to implementation of Laravel’s authentication features.

  1. Run the following commands to install Laravel Breeze
composer require laravel/breeze --dev
php artisan breeze:install
npm install
npm run dev
php artisan migrate
php artisan make:migration add_role_to_users_table --table=users

 

above the code snippt sets up basic authentication functionality, including login and registration.

2. Create Role Field in Users Table

To differentiate between admin and regular users, add a role field to the users table. Run the following migration to add the field.

Run the following command to create a migration

php artisan make:migration add_role_to_users_table --table=users

In the migration file, update the up() function to add the role column:

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('role')->default('user'); // Role field, default is 'user'
    });
}

Then, run the migration:

php artisan migrate

3. Modify User Model

In the User.php model, add a method to check if a user is an admin or a regular user

class User extends Authenticatable
{
    
    // Check if the user is an admin
    public function isAdmin()
    {
        return $this->role === 'admin';
    }
}

4. Protect Routes Based on Role

In the routes/web.php file, define separate routes for the admin and user functionalities.

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;

// Admin Routes
Route::middleware(['auth', 'isAdmin'])->group(function () {
    Route::get('/admin', [HomeController::class, 'adminDashboard'])->name('admin.dashboard');

});

// User Routes
Route::middleware(['auth'])->group(function () {
    Route::get('/user', [HomeController::class, 'userDashboard'])->name('user.dashboard');

});

5. Create Middleware for Admin Role

To restrict access to admin routes, create a middleware that checks if the user is an admin.

Run the following command:

php artisan make:middleware IsAdmin

In the app/Http/Middleware/IsAdmin.php file, update the handle() method to check the user’s role.

public function handle($request, Closure $next)
{
    if (auth()->check() && auth()->user()->isAdmin()) {
        return $next($request);
    }

    return redirect('/user'); // Redirect non-admins to user dashboard
}

6. Modify the HomeController

Create a HomeController with methods to serve both admin and user dashboards.

php artisan make:controller HomeController
class HomeController extends Controller
{
    // Admin Dashboard
    public function adminDashboard()
    {
        return view('admin.dashboard'); // Admin view
    }

    // User Dashboard
    public function userDashboard()
    {
        return view('user.dashboard'); // User view
    }
}

7. Create Views for Admin and User Dashboards

In the resources/views folder, create separate folders for admin and user views.

  • resources/views/admin/dashboard.blade.php
@extends('layouts.app')

@section('content')
<div class="container">
    <h1>Admin Dashboard</h1>
    <p>Welcome to the admin dashboard!</p>
</div>
@endsection
  • resources/views/user/dashboard.blade.php

 

Load More Related Articles
Load More By admin
Load More In Laravel 9

Leave a Reply

Your email address will not be published. Required fields are marked *

Check Also

Creating a Grocery Inventory App Using React

Introduction to Grocery Inventory Apps Managing grocery inventory can be a daunting task, …