احراز هویت با Laravel Breeze

احراز هویت با Laravel Breeze: راهنمای جامع

احراز هویت با Laravel Breeze: راهنمای جامع

Laravel Breeze یک بسته (package) ساده و سبک برای احراز هویت در برنامه‌های Laravel است. این بسته، یک پیاده‌سازی اولیه از احراز هویت شامل ثبت‌نام، ورود، بازیابی رمز عبور و تأیید ایمیل را فراهم می‌کند. Breeze به طور خاص برای توسعه‌دهندگانی طراحی شده است که می‌خواهند به سرعت یک سیستم احراز هویت کاربردی راه‌اندازی کنند و سپس آن را مطابق با نیازهای خود سفارشی‌سازی کنند. این مقاله به بررسی عمیق Laravel Breeze، نحوه نصب، پیکربندی، استفاده و سفارشی‌سازی آن می‌پردازد.

چرا Laravel Breeze؟

Laravel به طور پیش‌فرض یک سیستم احراز هویت کامل ارائه نمی‌دهد. در حالی که Laravel Fortify یک راه حل قدرتمند و انعطاف‌پذیر است، Breeze یک گزینه ساده‌تر و سریع‌تر برای شروع است. Breeze با استفاده از Blade templates و کنترلرهای ساده، یک تجربه کاربری اولیه را فراهم می‌کند که به راحتی قابل سفارشی‌سازی است. این ابزار برای پروژه‌های کوچک تا متوسط که نیاز به یک سیستم احراز هویت استاندارد دارند، بسیار مناسب است.

پیش‌نیازها

قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:

  • PHP 8.1 یا بالاتر
  • Composer
  • Laravel 10 یا بالاتر (توصیه می‌شود)
  • یک پایگاه داده (MySQL, PostgreSQL, SQLite, SQL Server)

نصب Laravel Breeze

نصب Breeze بسیار ساده است. ابتدا، یک پروژه Laravel جدید ایجاد کنید (اگر از قبل ندارید):

composer create-project --prefer-dist laravel/laravel your-project-name

سپس، به دایرکتوری پروژه خود بروید و Breeze را با استفاده از Composer نصب کنید:

composer require laravel/breeze --dev

بعد از نصب، Breeze را با دستور Artisan زیر اجرا کنید:

php artisan breeze:install

این دستور از شما می‌پرسد که می‌خواهید از چه استک (stack) فرانت‌اندی استفاده کنید. گزینه‌های موجود عبارتند از:

  • Blade (پیش‌فرض)
  • React
  • Vue
  • Next.js

انتخاب Blade به شما یک سیستم احراز هویت کامل با استفاده از Blade templates می‌دهد. پس از انتخاب استک، Breeze فایل‌های لازم را به پروژه شما اضافه می‌کند و پایگاه داده را برای شما پیکربندی می‌کند.

پیکربندی Breeze

Breeze به طور خودکار فایل‌های پیکربندی لازم را ایجاد می‌کند. با این حال، ممکن است بخواهید برخی از تنظیمات را تغییر دهید. فایل اصلی پیکربندی Breeze در مسیر config/breeze.php قرار دارد. در این فایل می‌توانید تنظیماتی مانند مسیرهای احراز هویت، مدل کاربر و سایر گزینه‌ها را تغییر دهید.

همچنین، فایل .env را بررسی کنید تا مطمئن شوید که تنظیمات پایگاه داده شما صحیح هستند. متغیرهای زیر باید به درستی پیکربندی شوند:

  • DB_CONNECTION
  • DB_HOST
  • DB_PORT
  • DB_DATABASE
  • DB_USERNAME
  • DB_PASSWORD

استفاده از Breeze

پس از نصب و پیکربندی، می‌توانید از Breeze برای احراز هویت کاربران خود استفاده کنید. Breeze به طور خودکار مسیرها و کنترلرهای لازم را ایجاد می‌کند. مسیرهای اصلی احراز هویت عبارتند از:

  • /register: صفحه ثبت‌نام
  • /login: صفحه ورود
  • /password/reset: صفحه بازیابی رمز عبور
  • /password/confirm: صفحه تأیید رمز عبور
  • /email/verify: صفحه تأیید ایمیل

Breeze از middlewareهای guest و auth برای محافظت از مسیرها استفاده می‌کند. guest فقط به کاربرانی که وارد نشده‌اند اجازه دسترسی می‌دهد، در حالی که auth فقط به کاربرانی که وارد شده‌اند اجازه دسترسی می‌دهد.

سفارشی‌سازی Breeze

Breeze به گونه‌ای طراحی شده است که به راحتی قابل سفارشی‌سازی باشد. می‌توانید Blade templates را تغییر دهید، کنترلرها را گسترش دهید و مسیرها را سفارشی‌سازی کنید. در اینجا چند نمونه از نحوه سفارشی‌سازی Breeze آورده شده است:

تغییر Blade Templates

Blade templates در دایرکتوری resources/views/auth قرار دارند. می‌توانید این فایل‌ها را ویرایش کنید تا ظاهر و احساس سیستم احراز هویت خود را تغییر دهید. به عنوان مثال، می‌توانید لوگو، رنگ‌ها و فونت‌ها را تغییر دهید.

گسترش کنترلرها

کنترلرهای Breeze در دایرکتوری app/Http/Controllers/Auth قرار دارند. می‌توانید این کنترلرها را گسترش دهید تا منطق احراز هویت سفارشی خود را اضافه کنید. به عنوان مثال، می‌توانید یک فیلد اضافی به فرم ثبت‌نام اضافه کنید یا یک رویداد را پس از ثبت‌نام یا ورود کاربر فعال کنید.

سفارشی‌سازی مسیرها

می‌توانید مسیرهای Breeze را در فایل routes/web.php سفارشی‌سازی کنید. به عنوان مثال، می‌توانید مسیرهای جدیدی برای احراز هویت اضافه کنید یا مسیرهای موجود را تغییر دهید.

اضافه کردن تأیید دو مرحله‌ای (2FA)

Breeze به طور پیش‌فرض از تأیید دو مرحله‌ای پشتیبانی نمی‌کند. با این حال، می‌توانید با استفاده از بسته‌هایی مانند Laravel Fortify و یک ارائه دهنده 2FA، این قابلیت را به Breeze اضافه کنید. این کار نیاز به پیکربندی اضافی و سفارشی‌سازی Blade templates دارد.

استفاده از مدل کاربر سفارشی

اگر از یک مدل کاربر سفارشی استفاده می‌کنید، باید Breeze را پیکربندی کنید تا از مدل شما استفاده کند. این کار را می‌توان با تغییر متغیر user_model در فایل config/breeze.php انجام داد.

امنیت در Breeze

Breeze با استفاده از ویژگی‌های امنیتی Laravel مانند محافظت از CSRF و رمزگذاری رمز عبور، امنیت را در نظر می‌گیرد. با این حال، مهم است که اقدامات امنیتی اضافی را نیز در نظر بگیرید. برخی از این اقدامات عبارتند از:

  • استفاده از رمز عبورهای قوی
  • فعال کردن تأیید دو مرحله‌ای
  • به‌روزرسانی منظم Laravel و Breeze
  • استفاده از HTTPS
  • اعتبارسنجی ورودی کاربر

عیب‌یابی

اگر با مشکلی در Breeze مواجه شدید، می‌توانید از منابع زیر برای عیب‌یابی استفاده کنید:

همچنین، بررسی لاگ‌های Laravel می‌تواند به شما در شناسایی و رفع مشکلات کمک کند.

نتیجه‌گیری

Laravel Breeze یک راه حل ساده و قدرتمند برای احراز هویت در برنامه‌های Laravel است. این بسته به شما امکان می‌دهد تا به سرعت یک سیستم احراز هویت کاربردی راه‌اندازی کنید و سپس آن را مطابق با نیازهای خود سفارشی‌سازی کنید. با استفاده از Breeze، می‌توانید زمان و تلاش خود را در توسعه سیستم احراز هویت صرفه‌جویی کنید و بر روی ویژگی‌های اصلی برنامه خود تمرکز کنید.