ساخت دو لاگین در یک پروژه

- 2 هفته پیش
توسط MostafaRDE آپدیت شد
masood ( 549 تجربه )
3 هفته پیش

ساخت دو لاگین در یک پروژه بطور مثال یکی برای قسمت ادمین ها و دومی برای قسمت فروشگاهی . ایا دستور خاصی هست ؟ یا میشه با همون دستور make:auth و تغییرات کاری کرد؟

بهترین پاسخ انتخاب شده توسط masood
Alimotreb
3 هفته پیش

سلام
@masoodhoseiny

<?php

namespace App\Http\Middleware;

use Closure;

class CheckAdminAuth
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

            if(auth()->check()) {
            if(auth()->user()->isAdmin())
            return $next($request);
        }

        return back();
    }
}

این برای خود میدلور قسمت ادمین

توی روت ها هم
یه مثال براتون بیارم


Route::group(['middleware' => 'auth:web'], function () {
    $this->get('/dashboard','adminController@index')->middleware('CheckAdmin');
    $this->get('/dashboard/settings','adminController@settings')->middleware('CheckAdmin');
    $this->post('/dashboard/settings','adminController@settings_upd')->middleware('CheckAdmin');
});

به این صورت استفاده میشه

Arshavir ( 12851 تجربه )
3 هفته پیش

یه فیلد به جدول user اضافه کنید به اسم is_admin که اگر یک بود یعنی ادمین اگر صفر بود قسمت فروشگاهی
این رو باید توی میدلویر چک بشه فیلد is_admin

Alimotreb ( 42272 تجربه )
3 هفته پیش

سلام
@masoodhoseiny

میشه 2 تا ساخت ، ولی این کار پیشنهاد نمیشه و اصولی نیست زیاد.
باید دسته بندی یوزر ها صورت بگیره با میدلور چک بشن!

masood ( 549 تجربه )
3 هفته پیش

تو میدلور چه کدی بزنم ممنون میشم نمونه کد بفرستین

Alimotreb ( 42272 تجربه )
3 هفته پیش

سلام
@masoodhoseiny

<?php

namespace App\Http\Middleware;

use Closure;

class CheckAdminAuth
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

            if(auth()->check()) {
            if(auth()->user()->isAdmin())
            return $next($request);
        }

        return back();
    }
}

این برای خود میدلور قسمت ادمین

توی روت ها هم
یه مثال براتون بیارم


Route::group(['middleware' => 'auth:web'], function () {
    $this->get('/dashboard','adminController@index')->middleware('CheckAdmin');
    $this->get('/dashboard/settings','adminController@settings')->middleware('CheckAdmin');
    $this->post('/dashboard/settings','adminController@settings_upd')->middleware('CheckAdmin');
});

به این صورت استفاده میشه

MostafaRDE ( 700 تجربه )
3 هفته پیش

@masoodhoseiny

سلام
اصولش اینه که از سیستم ACL یا به اصطلاح Access Level Control استفاده کنی
نیاز نیست دو تا لاگین بسازی و اصلا کار درستی نیست
هر کاربر یه نقش داره و هر نقش می تونه یه سری کار رو انجام بده که تو ACL ما اینا رو با دو جدول اصلی roles و permissions کنترل می کنیم

لاراول هم با اضافه کردن Policies کار رو برامون خیلی راحت تر کرده

پیشنهاد می کنم اگه با این مباحث آشنایی نداری حتما مطالعه کنی که کلی دستت رو جلو میندازه :)

برای ارسال پاسخ باید وارد سایت شوید