رفتن به مطلب
انجمن پشتیبانی لاراول ایران

Recommended Posts

سلام دوستان

من میخوام که کاربر برای دسترسی به هر صفحه از سایت حتما لاگین کرده باشه

مثلا اگه بخواد به صفحه ای از سایت بره و لاگین نکرده باشه به صورت خودکار به صفحه ی لاگین ریدایرکت بشه

ممن.ن میشم راهنمایی بکنید.

Share this post


Link to post
Share on other sites

سلام

شما برای این کار باید یک میان افزار (Middleware) ایجاد نمایید. سپس برای تمامی مسیرها (Route) از این میان افزار استفاده کنید. با استفاده از artisan یک میان افزار به نام CheckLogin ایجاد نمایید.

php artisan make:middleware CheckLogin

میان افزار ایجاد شده را در مسیر app/Http/Kernel.php  در انتهای آرایه routeMiddleware$  با نام اختیاری check-login ثبت (Register) نمایید.

'check-login' => \App\Http\Middleware\CheckLogin::class,

حال از route های زیر در  web.php استفاده نمایید.

Auth::routes();

// for home page
Route::get('/', 'HomeController@index')->name('home');

Route::middleware('check-login')->group(function() {
	// insert all routes here
   // for example....
   Route::get('/faq', 'HomeController@faq')->name('home.faq');
   Route::get('/search/tag/{tag}', 'SearchController@tag')->name('home.tag');

});

 در انتها کافی است متد ()handle را به صورت زیر ویرایش کنید.

public function handle($request, Closure $next)
{
        return redirect()->to('login');
}

حال کاربر به جز صفحه اصلی سایت، به تمامی صفحات سایت بدون لاگین دسترسی ندارد.

امیدوارم که این پاسخ مشکل شما را حل کرده باشد.

Share this post


Link to post
Share on other sites
در 16 دقیقه قبل، Amir_Kh1984 گفته است :

سلام

شما برای این کار باید یک میان افزار (Middleware) ایجاد نمایید. سپس برای تمامی مسیرها (Route) از این میان افزار استفاده کنید. با استفاده از artisan یک میان افزار به نام CheckLogin ایجاد نمایید.


php artisan make:middleware CheckLogin

میان افزار ایجاد شده را در مسیر app/Http/Kernel.php  در انتهای آرایه routeMiddleware$  با نام اختیاری check-login ثبت (Register) نمایید.


'check-login' => \App\Http\Middleware\CheckLogin::class,

حال از route های زیر در  web.php استفاده نمایید.


Auth::routes();

// for home page
Route::get('/', 'HomeController@index')->name('home');

Route::middleware('check-login')->group(function() {
	// insert all routes here
   // for example....
   Route::get('/faq', 'HomeController@faq')->name('home.faq');
   Route::get('/search/tag/{tag}', 'SearchController@tag')->name('home.tag');

});

 در انتها کافی است متد ()handle را به صورت زیر ویرایش کنید.


public function handle($request, Closure $next)
{
        return redirect()->to('login');
}

حال کاربر به جز صفحه اصلی سایت، به تمامی صفحات سایت بدون لاگین دسترسی ندارد.

امیدوارم که این پاسخ مشکل شما را حل کرده باشد.

خیلی خیلی ممنونم، مشکلم حل شد.

Share this post


Link to post
Share on other sites
در 16 دقیقه قبل، Amir_Kh1984 گفته است :

سلام

شما برای این کار باید یک میان افزار (Middleware) ایجاد نمایید. سپس برای تمامی مسیرها (Route) از این میان افزار استفاده کنید. با استفاده از artisan یک میان افزار به نام CheckLogin ایجاد نمایید.


php artisan make:middleware CheckLogin

میان افزار ایجاد شده را در مسیر app/Http/Kernel.php  در انتهای آرایه routeMiddleware$  با نام اختیاری check-login ثبت (Register) نمایید.


'check-login' => \App\Http\Middleware\CheckLogin::class,

حال از route های زیر در  web.php استفاده نمایید.


Auth::routes();

// for home page
Route::get('/', 'HomeController@index')->name('home');

Route::middleware('check-login')->group(function() {
	// insert all routes here
   // for example....
   Route::get('/faq', 'HomeController@faq')->name('home.faq');
   Route::get('/search/tag/{tag}', 'SearchController@tag')->name('home.tag');

});

 در انتها کافی است متد ()handle را به صورت زیر ویرایش کنید.


public function handle($request, Closure $next)
{
        return redirect()->to('login');
}

حال کاربر به جز صفحه اصلی سایت، به تمامی صفحات سایت بدون لاگین دسترسی ندارد.

امیدوارم که این پاسخ مشکل شما را حل کرده باشد.

خیلی خیلی ممنونم، مشکلم حل شد.

Share this post


Link to post
Share on other sites

وارد این گفتگو شوید

میتوانید پیام خود را ارسال کنید و بعد ثبت نام نمایید. در صورتی که حساب کاربری دارید, هم اکنون وارد شوید و در این گفتگو شرکت کنید.

مهمان
پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  Only 75 emoji are allowed.

×   لینک شما به صورت اتوماتیک جایگذاری شد.   نمایش به عنوان یک لینک به جای

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • جدید...