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-qism – Ma’lumotlar bilan ishlash: Eloquent va Query Builder. Ma’lumotlar bazasi bilan qulay va samarali ishlash uslublarini o‘rganamiz.