جشنواره عیدانه راکت | عضویت ویژه راکت برای آخرین بار | افزایش قیمت‌ها از سال جدید | و ...

مشاهده اطلاعات بیشتر...
ثانیه
دقیقه
ساعت
روز
eMBi
5 سال پیش توسط eMBi مطرح شد
10 پاسخ

احراز هویت ادمین و یوزر

سلام

دوستان من یک جدول ادمین دارم و یک جدول یوزر
چطور میتونم احراز هویت رو انجام بدم؟

میخوام داشبورد مدیریت از کاربر جدا باشه


ثبت پرسش جدید
محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 5 سال پیش مطرح شد
0

@bahadori.embi
اینو ببینید:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],

یعنی اومدم admin رو هم بهش اضافه کردم در فایل auth.php
و همچنین در ادامه همون فایل :

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'admins' => [
        'driver' => 'database',
        'table' => 'admins',
    ],
],

من الان با کدهای بالا اومدم 2 دسته کاربر درست کردم یعنی user و admin که البته باید موقع ورود یا همون attempt نوع کاربر رو مشخص کنید. یعنی :

Auth::quard('admin')->attempt(...)

و یا :

Auth::quard('user')->attempt(...)

محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

@bahadori.embi
از middleware استفاده کنید


eMBi
تخصص : برنامه نویس
@bahadori.embi 5 سال پیش مطرح شد
0

@mohsenbostan
ممنونم
میشه لطفا بیشتر توضیح بدین؟
یا لینک یه مقاله بدین؟

ممنونم‌ازتون


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 5 سال پیش مطرح شد
0

با یه جدول users هم میتونی پنل مدیریت رو از پنل کاربری جدا کنی
کافیه یه فیلد به اسم role مثلا بذاری و مقدار پیشفرضش رو user بذاری


eMBi
تخصص : برنامه نویس
@bahadori.embi 5 سال پیش مطرح شد
0

@rezajashnsaz0011
ممنون
اما حتما میخوام جدول هاش جدا باشه


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 5 سال پیش مطرح شد
0

خب در این صورت باید دستی چک کنی .. مثلا تو صفحه ورود ادمین چک کنی تو جدول admins چنین یوزرنیم و پسوردی که کاربر زده وجود داره یا نه
و تو صفحه ورود کاربر باید همین کارو تو جدول users انجام بدی


محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 5 سال پیش مطرح شد
0

برای اینکار کار خود لاراول امکانی قرار داده با عنوان quard. یعنی شما میتونی توسط quard نوع یوزری که وارد میشه رو تعیین کنی که admin هست و یا user.


eMBi
تخصص : برنامه نویس
@bahadori.embi 5 سال پیش مطرح شد
0

@drcode.ir
میشه لطفا بیشتر راهنمایی کنید؟


محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 5 سال پیش مطرح شد
0

quard در لاراول یک امکانی هست دقیقا همین نیاز شمارو برطرف میکنه. تکه کد زیر رو ببینید.

if (Auth::guard('admin')

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

route:get(...)->middleware('auth:admin');

یعنی فقط کاربرهایی که admin هستند به این روت میتونن دسترسی داشته باشن.
فقط یکی دوتا تنظیمات دیگه در فایل auth.php نیاز هست که باید انجام بدید و میتونید از لینک زیر استفاده کنید.
https://laravel.com/docs/master/authentication#adding-custom-guards


eMBi
تخصص : برنامه نویس
@bahadori.embi 5 سال پیش مطرح شد
0

@drcode.ir
ممنونم از لطفتون

باید کد زیر رو به فایل auth.php اضافه کنم؟

'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],


محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 5 سال پیش مطرح شد
0

@bahadori.embi
اینو ببینید:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins',
    ],

    'api' => [
        'driver' => 'token',
        'provider' => 'users',
    ],
],

یعنی اومدم admin رو هم بهش اضافه کردم در فایل auth.php
و همچنین در ادامه همون فایل :

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'admins' => [
        'driver' => 'database',
        'table' => 'admins',
    ],
],

من الان با کدهای بالا اومدم 2 دسته کاربر درست کردم یعنی user و admin که البته باید موقع ورود یا همون attempt نوع کاربر رو مشخص کنید. یعنی :

Auth::quard('admin')->attempt(...)

و یا :

Auth::quard('user')->attempt(...)

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

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