راکت
حل شده

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

10 پاسخ

سلام

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

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

eMBi
eMBi
@bahadori.embi
ثبت پرسش جدید

پاسخ‌ها

10
محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

بهترین پاسخ

@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(...)
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

eMBi
eMBi
@bahadori.embi

تخصص: برنامه نویس

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

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

شاید پاسخ شما همین‌جا باشد

Reza Jashnsaz
Reza Jashnsaz
@rezajashnsaz0011

تخصص: مهندس نرم افزار

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

eMBi
eMBi
@bahadori.embi

تخصص: برنامه نویس

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

Reza Jashnsaz
Reza Jashnsaz
@rezajashnsaz0011

تخصص: مهندس نرم افزار

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

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

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

eMBi
eMBi
@bahadori.embi

تخصص: برنامه نویس

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

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

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
eMBi
@bahadori.embi

تخصص: برنامه نویس

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

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

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

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

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