4 پاسخ

پیاده سازی authentication به صورت دستی

سلام و عرض ادب خدمت دوستان عزیز
اگر من بخوام به صورت کاملا دستی سیستم احراز هویت در لاراول رو ایجاد کنم چطور هست ؟ سناریوی زیر رو در نظر بگیرید :
یک وبسایت هست که قسمت های لاگین متفاوتی داره و من جداول متفاوتی رو ایجاد میکنم برای مثال :
جداول
Managers برای مدیران شرکت
Personnels برای ورود به داشبورد پرسنل شرکت
blog adminبرای نویسندگان وبلاگ
market admin برای ادمین های فروشگاه
user برای مخاطبان وبسایت

حالا من یکم گیج شدم که چطور از auth باید استفاده کنم و اصلا پیاده سازیش به چه شکله چون فقط جدول user چک میشه و یا وقتی از laravel/ui استفاده میکنم فقط یک صفحه لاگین هست و من نیاز به چندین صفحه لاگین دارم
یا اصلا سناریو مشکل داره و راه بهتری پیشنهاد میدین ؟
در ضمن از لاراول ۸ استفاده میکنم.


ثبت پرسش جدید
علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش آپدیت شد
0

سلام
چرا دستی ؟؟؟
همه موارد شما چه مدیر سایت ، چه پرسنل شرکت ، چه ادمین های فروشگاه ووو... باید با جدول user مشخص بشوند . شاید کمی بد عرض کردم . بگذارید اینگونه توضیح بدهم .
فرض کنید در پروژه ای ما سه جدول برای افراد سایت داریم .
کاربران عادی ، مدیران سایت ، مدرسان سایت

فرض کنید در جدول users چنین اطلاعاتی است :
id , name , email , password
جدول مدیران باید چنین باشد حالا اطلاعات اضافه تری برای مدیران میخوایم . مثلا یک عکس پروفایل ، متن درباره من ووو... :
id , about , picture , userid
خب باید در بخش userid آیدی اون user قرار بگیره . و این طوری جدول user و admin رو به هم وصل میکنیم
به صورت خلاصه عرض کنم : یعنی لازم نیست برای هر کدام بخش جداگانه نوشته بشه .

عذر میخواهم که کمی مبهم و نا مفهوم توضیح دادم ، امیدوارم مفید بوده باشد .


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش آپدیت شد
1

سلام
یک راه به صورت multi auth هست که فقط جهت اطلاع گفتم با توضیحی که فرمودید توصیه نمیکنم استفاده کنید چون راه ساده تر باز هم هست.
ببینید کافیه توی تیبل users یک ستون تحت عنوان level یا مثلا post تعریف کنید مثل نمونه زیر:

$table->enum('post' , ['user' , 'admin' , 'teacher'])->default('user');

حالا توی روت سرویس پروایدرز هم mapAdminRoutes و mapTeacherRoutes رو ایجاد کنید و مقادیر prefix و namespace و middleware رو براش تعریف کنید سپس توی پوشه routes هم فایل مربوط به روتهای هر کدوم رو جدا ایجاد کنید بعد از اون باید middleware ها رو هم بسازید و بر اساس متدی که توی مدل یوزر از post ساختید توی میدلور دسترسی رو هم تعریف کنید. حالا میدلورها رو توی فایل Kernel.php در پوشه http اضافه کنید و کار تمومه. می تونید کنترلرهای مختلف و ویو جداگانه و روت های مجزا برای هر دسترسی رو ایجاد کنید.


حسین افتخارراد
تخصص : نال کد
@hosseinradvictor 3 سال پیش مطرح شد
1

با درود و وقت بخیر
مورد مد نظر شما multi auth هست که از کانال یوتوب زیر میتونید یک آموزش مناسب رو ببینید
https://www.youtube.com/watch?v=q5MdHt_cYoo&list=PL-WATT0qm4palxy-xIPybEeKuemyWP7nG


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
1

سلام نظر بنده این است اگه کاربرها اطلاعات مختلفی دارند که میخواهید ذخیره بشن که فکر نکنم داشته باشن با مولتی یوزر کار کن
یا یه جدول بگیر با نامusers و یک فیلد چه میدونم type و همه رو از طریق یه روت و فرم لاگین کن و بعد از لاگین با توجه به نوع کاربر هر کسی رو به قسمت خودش بفرست
این روش کد نویسی بهینه تری داره و کار رود تموم میشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام