پیاده سازی احراز هویت در لاراول بسیار ساده است. تنظیمات مربوط به احراز هویت در پوشه config و فایل auth.php قرار دارد. در این فایل می توانید درایور را eloquent تعیین کنید و کلاس مدلی که به جدول کاربران دسترسی دارد را مشخص کنید و همچنین در بخش table نام جدولی که اطلاعات کاربران در ان ذخیره می شود را مشخص کنید.

به طور پیش فرض در پوشه app یک مدل به نام User وجود دارد که با استفاده از eloquent لاراول یک سیستم احراز هویت را پیاده سازی کرده است که شما می توانید از آن استفاده کنید. در مسیر app/Http/Controllers/Auth دو کنترلر برای استفاده در سیستم احراز هویت استفاده می شوند که AuthController برای ایجاد کاربر جدید یا لاگین کردن و PasswordController برای ریست کردن کلمه عبور کاربرانی که آن را فراموش کرده اند به کار می رود.
تمام view های مربوطه هم در پوشه resources/views/auth قرار دارند و شما می توانید آنها را به دلخواه خودتان ویرایش کنید.

همچنین اگر نیاز دارید تغییراتی در فرم ثبت نام کاربر جدید بدهید کافی است در مسیر App/Services در فایل Registrar.php تغییرات مورد نظر را اعمال کنید. در متد validator می توانید قوانین اعتبارسنجی فیلدها و در متد create نیز مقادیر فیلدها را در دیتابیس و جدول users درج کنید. شما به راحتی می توانید از این سیستم احراز هویت پیش فرض لاراول استفاده کنید.

خود لاراول یک middleware به نام Authenticate ایجاد کرده که در متد handle آن ابتدا بررسی میکند آیا کاربر لاگین کرده یا خیر و در غیر اینصورت آن را به صفحه login هدایت میکند. شما با استفاده از این middleware در سازنده کلاس کنترلری که میخواهید فقط کاربران احراز هویت شده دسترسی داشته باشند به صورت زیر عمل کنیم. به طور مثال در کلاس کنترلر HomeController به همین صورت عمل شده است:

در صورتی که نمیخواهید از این سیستم احراز هویت تهیه شده توسط لاراول استفاده کنید نگران نباشید. خودتان هم می توانید به سادگی آن را پیاده سازی کنید. برای اینکار باید کلاس Auth را به کنترلر ایمپورت کنید و سپس با استفاده از متد attempt به عنوان پارامتر یک آرایه دریافت می کند و کلیدهای این آرایه نام ستون های موردنظر در دیتابیس و جدول users و مقادیر آن هم مقدار وارد شده توسط کاربر است. متد attempt صحت اطلاعات کاربر را بررسی کنید، در صورتی که احراز هویت با موفقیت انجام شود true وگرنه false برمیگرداند.

همچنین می توانیم در متد attempt اطلاعات بیشتری را بررسی کنیم. مثلا در مثال زیر علاوه بر ایمیل و کلمه عبور باید فیلد تایید کاربر در دیتابیس هم ۱ باشد:

در هر قسمت از برنامه هم که نیاز دارید بررسی کنید کاربر جاری احراز هویت شده است یا خیر کافی است از متد check اینکار را انجام دهید:

برای logout کردن از برنامه هم از متد logout استفاده میکنیم:

بعداز اینکه کاربر احراز هویت شد به راحتی با استفاده از متد user میتوانید یک آبجکت از کاربر جاری ایجاد کنید:

همانطور که در مثال مشاهده کردید به راحتی توانستیم به نام کاربر دسترسی داشته و آن را چاپ کنیم.

در کنترلر به روش های زیر هم می توان یک آبجکت از کاربر ایجاد کنیم:

برای مسیرها هم می توانیم middleware احراز هویت را تعریف کنیم تا دسترسی به مسیر فقط برای کاربران احراز هویت شده میسر باشد.

مباحث اصلی را ذکر شد، برای اطلاعات بیشتر می توانید به مستندات laravel مراجعه کنید.

کتاب pdf این بخش از آموزش گام به گام لاراول را در ادامه دانلود کنید.

image_pdfدانلود فایل pdf این مقاله
کلیدواژه ها :

این خبر را به اشتراک بگذارید :