masood
5 سال پیش توسط masood مطرح شد
5 پاسخ

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

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


ثبت پرسش جدید
Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
2

سلام
@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');
});

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


bardia
تخصص : Golang/Laravel
@mrbardia72 5 سال پیش مطرح شد
3

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


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
2

سلام
@masoodhoseiny

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


masood
تخصص : برنامه نویس
@masoodhoseiny 5 سال پیش مطرح شد
0

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


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
2

سلام
@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
@MostafaRDE 5 سال پیش مطرح شد
1

@masoodhoseiny

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

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

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


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

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