راه اندازی تأیید هویت کاربر در فریم ورک لاراول با استفاده از Confide

راه اندازی تأیید هویت کاربر در فریم ورک لاراول با استفاده از Confide

تأیید هویت کاربر تقریبا بخشی از هر برنامه وب است. اگر چه آن مشترک است، نگاهی عمیق تر نشان می دهد که چنان که به نظر می رسد راحت نیست. به یاد داشته باشید که تأیید هویت، بازیابی رمز عبور، و تایید ایمیل به هر شکل در فرم مناسب و حیاتی است.

Confide یک راه حل احراز هویت برای فریم ورک Laravel است که برای کاهش کار تکراری که شامل مدیریت کاربران می باشد ساخته شده است. این یک روش DRY در ویژگی هایی مثل ایجاد حساب، ورود، خروج، تایید از طریق پست الکترونیکی، تنظیم مجدد رمز عبور، و غیره است.

از آنجایی که نسخه های اولیه، Confide همیشه جایگاه خاصی در میان توسعه دهندگان و حضور گسترده ای در پروژه های چارچوب لاراول داشته است. با به روز رسانی های اخیر، در حال حاضر که مشغول نوشتن این پست هستم، این بسته  با فریم ورک لاراول ۴.۲ سازگاری دارد.

 

.توجه: این آموزش تنها با نسخه ۴ لاراول هماهنگی دارد 

 

چه کارهایی انجام خواهیم داد

 

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

 

  • ایجاد یک فرم ثبت نام با یک مجموعه کامل از قوانین اعتبار سنجی
  • فرم ورود با گزینه “رمز عبور خود را فراموش کرده ام” که با ارسال یک لینک به کاربر، بتواند رمز عبور خود را تغییر دهد
  • استفاده از فیلترهای چارچوب لاراول که به کاربران اجازه دهد به یک آدرس مشخصی دسترسی داشته باشند

 

ایجاد برنامه

 

اول از همه، اجازه دهید برنامه را با استفاده از Composer ایجاد کنیم:

برای اطلاعت بیشتر در رابطه با نصب Composer می توانید مدیریت وابستگی ها با Composer را مطالعه کنید.

نصب Confide

 

حال، در داخل دایرکتوری پروژه خود، کلید require را در فایل composer.json ویرایش کنید و confide را وارد کنید:

آنگاه دستور به روز رسانی Composer را در وابستگی های خود اجرا کنید:

در config/app.php پروژه خود، 'Zizaco\Confide\ServiceProvider' را به آخر آرایه ارائه شده اضافه کنید:

همچنین 'Confide' => 'Zizaco\Confide\Facade' را به آرایه aliases در همان فایل اضافه کنید:

address و name را در config/mail.php تنظیم کنید. این پیکربندی برای ارسال تاییدیه حساب کاربری و تنظیم مجدد رمز عبور استفاده می شود. در این آموزش، شما از سرور SMTP شخصی برای انجام این کارها استفاده می کنید.

به عنوان مثال، اگر از Gmail استفاده می کنید باید به صورت زیر عمل کنید:

 

Model کاربر

 

حال Confide migrations را اجرا کنید:

توجه داشته باشید که قبل از اجرا دستورات بالا باید دیتابیسی به نام forge با استفاده از phpmyadmin یا غیره ایجاد کرده باشید. برای پیکربندی دیتبایس به آدرس app/config/database.php مراجعه کنید و در قسمت mysql تنظیمات خود را اگر لازم است ویرایش کنید.

migrate

اجرا دستورات بالا باعث می شود یک جدول شامل remember_token، password، email، confirmation_code و confirmed ایجاد شود. این فیلدها بطور پیشفرض مورد نیاز Confide هسنتد. شما میتوانید بعدها به راحتی ستون های بیشتری اضافه کنید.

تمام کدهای درون app/models/User.php را با دستورات زیر جایگزین کنید:

Zizaco\Confide\ConfideUser بیشتر رفتارهای مدل کاربر را مراقبت می کند.

 

UsersController و Routes

 

Confide شامل یک ابزار تولید کننده است که کنترل کننده (controller) و ایجاد مسیرهایی یرای ما است. برای ساخت یک UsersController و ثبت نام، اجازه دهید دستورات زیر را وارد کنیم:

از آنجا که کلاس های جدید ایجاد شده اند، ما نیاز به تازه کردن فایل بطور خودکار داریم:

 

controller

 

آماده برای استفاده

ما کار را تمام کردیم! حال برنامه ما از همه ی ویژگی هایی که Confide ارائه می دهد پشتیبانی می کند. سرور خود را با استفاده از فراخوانی php artisan serve اجرا کنید.

مسیرهای GET زیر موجود در برنامه ما عبارتند از:

 

  • http://localhost:8000/users/create
  • http://localhost:8000/users/login
  • http://localhost:8000/users/forgot_password

 

برای دسترسی به کاربر فعلی می توان فراخوانی ()Confide::user را انجام داد. بنابراین، برای نشان دادن نام کاربر فعلی نیاز داریم که محتوای زیر را به فایل app/views/hello.php جایگزین کنیم:

 

 

حال از طریق مرورگر به آدرس http://localhost:8000/users/create مراجعه کنید تا اولین کاربر خود را ثبت نام کنیم. شما یک ایمیل تایید بلافاصله پس از ارسال فرم دریافت می کنید (اگر شما فایل config/mail.php را با مقدار درست تنظیم کرده باشید). login کنید و خواهید دید که نام کاربری شما در صفحه نمایش داده می شود.

 

hello-patrick

 

بهبود ظاهر

 

فرم های پیش فرض Confide با بوت استرپ سازگار است. بنابراین لازیم نیست خود را با CSS ها درگیر کنیم. controller توسط Confide فایل UserController.php را ویرایش می کند و بنابراین شما متد زیر را به روز رسانی کنید:

بنابراین برنامه ما نمای users.signup را نمایش خواهد داد. حال بیایید این view را در دایرکتوری app/views/users با نام signup.blade.php ایجاد کنیم و محتوای زیر را به آن اضافه کنیم:

editor

 

همان طور که در زیر مشاهده می کنید، این کار باعث می شود فرم ما در http://localhost:8000/user/create زیباتر مشاهده شود:

signup

 

توجه داشته باشید شما همیشه لازم نیست که از اشکال پیش فرض Confide استفاده کنید. شما می توانید view های خود را با ارسال POST داشته باشید.

 

محدود کردن دسترسی

 

فایل app/routes.php را باز کرده و کدهای زیر را به آخر آن اضافه کنید:

 

ابتدا view جدیدی اضافه کنید، app/views/userpanel/dashboard.blade.php

 

 

با این کار ما تمام مسیرهای درون userpanel را فیلتر می کنیم. همچنین به یک کد ریز برای اطمینان حاصل کردن از اینکه فیلتر auth به درستی کاربر را به صفحه login انتقال می دهد یا نه! فایل app/filters.php را در خط ۴۶ با کد زیر جایگزین کنید:

 

کار تمام شد! صفحه userpanel/dashboard تنها در صورتی در دسترس است که کاربرانی به برنامه login کرده باشند.

فیلتر کاربران مهمان را به فرم ورود راهنمایی می کند.

 

خلاصه

 

این ممکن است که توانایی این را داشته باشیم که به سرعت برای برنامه خود احراز هویت درست کنیم. همچنین، controller، migration و routes می شود بصورت سفارشی ویرایش شوند.

ما بسیار کم بر روی ConfideUser متمرکز شدیم، اما باور دارم که نکات مهمش را به وضوح برای شما روشن شده است. هنگامی که مدل شما از ConfideUser استفاده می کند، نیازی به نگرانی در مورد اجزای منطق آن ندارید. همزمان، می توانید متدها را بازنویسی و سفارشی کنید اگر ضروری باشند.

می توان گفت که Confide یک روش DRY برای احراز هویت است. برای اطلاعات بیشتر می توانید Confide on GitHub را مطالعه کنید.

امیدواریم که این پست کمک اندکی به دانش شما کرده باشد، خوشحال می شوم که نظرات شما را در رابطه با این آموزش ببینم.