Laravel: 0 dan Pro gacha – 8-qism: Email Verification va Foydalanuvchi Rollari

📬 Kirish

Har bir foydalanuvchining shaxsiyligini tasdiqlash va tizim ichidagi huquqlarni boshqarish (masalan, admin, foydalanuvchi, moderator) zamonaviy web ilovalarda juda muhim. Bu qismda biz:

  • Email verification (tasdiqlash)

  • Role-based access control (foydalanuvchi rollari) haqida ko‘rib chiqamiz.


✅ 1. Email Verification’ni yoqish

Laravel’da bu funksiya MustVerifyEmail interfeysi orqali qo‘llaniladi.

📌 User model’ga qo‘shing:

use Illuminate\Contracts\Auth\MustVerifyEmail;

class User extends Authenticatable implements MustVerifyEmail
{
    // ...
}

📌 Auth route’lar routes/web.php faylida:

Auth::routes(['verify' => true]);

📌 Middleware bilan himoya:

Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/dashboard', function () {
        return view('dashboard');
    });
});

Laravel avtomatik tarzda email tasdiqlash linkini yuboradi.


🧑‍⚖️ 2. Foydalanuvchi rollari

Rollar yordamida siz kim nima qila olishini boshqarasiz (masalan, admin sahifalarga faqat admin kirsin).

📌 Migration:

php artisan make:migration add_role_to_users_table --table=users

Schema::table('users', function (Blueprint $table) {
    $table->string('role')->default('user'); // yoki enum('user', 'admin', 'moderator')
});

📌 Model va Middleware:

User modeliga helper qo‘shish:

public function isAdmin()
{
    return $this->role === 'admin';
}

📌 Middleware yaratish:

php artisan make:middleware AdminMiddleware

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

    abort(403);
}

app/Http/Kernel.php faylida ro‘yxatdan o‘tkazing:

'admin' => \App\Http\Middleware\AdminMiddleware::class,

Route::middleware(['auth', 'admin'])->group(function () {
    Route::get('/admin', [AdminController::class, 'index']);
});

🧾 Xulosa

Bu qismda email tasdiqlash va foydalanuvchi rollarini o‘rganib chiqdik. Endi siz foydalanuvchini ro‘yxatdan o‘tkazish bilan birga, uni faollashtirishingiz va kerakli joylarga kirishini boshqarishingiz mumkin.


🔜 9-qismda nimalar bo‘ladi?

9-qismMa’lumotlar bilan ishlash: Eloquent va Query Builder. Ma’lumotlar bazasi bilan qulay va samarali ishlash uslublarini o‘rganamiz.