簡體   English   中英

使用路由進行Laravel 5.1頁面身份驗證

[英]Laravel 5.1 page authentication using routes

我正在一個需要管理面板的網站上工作。 我目前正在嘗試設置該面板的身份驗證,但我找不到拒絕任何訪客用戶(非管理員)訪問的方法。 當然,我有一個登錄頁面,登錄后,它會路由到管理頁面,但是當你沒有登錄時你也可以去/ admin。

routes.php

Route::get('home', function(){
if (Auth::guest()) {
    return Redirect::to('/');
} else {
    return Redirect::to('admin');
}
});

Route::get('admin', function () {
    return view('pages.admin.start');
});

MainController.php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class MainController extends Controller {

 public function getIndex() {
    return view('pages.index');
 }

 public function getAbout() {
    return view('pages.about');
 }

 public function getPortfolio() {
    return view('pages.portfolio');
 }

 public function getShop() {
    return view('pages.shop');
 }

 public function getContact() {
    return view('pages.contact');
 }

 /*public function getAdmin() {
      return view('pages.admin.start');
 }*/
}

我真的可以在這里使用一些幫助,因為我完全卡住了,是的,我已經閱讀了文檔,盡管我可能只是遺漏了一些東西。

您應該使用中間件來處理用戶的身份驗證

1)首先,你必須創建一個中間件來檢查需要該頁面的用戶是否是管理員,如果不是,你必須重定向; 這樣的事情:

class AdminMiddleware
{
    public function handle(Request $request, Closure $next )
    {
        //if User is not admin
           //redirect to no permess

        return $next($request);
    }
}

2)然后,您必須將中間件綁定到您只能從管理員用戶訪問的路由:

//bind the middleware to all the routes inside this group
Route::group( ['middleware' => 'adminmiddleware' ], function()
{
    Route::get('admin', function () {
       return view('pages.admin.start');
    });

    //other routes   
});

假設你有這樣的一行:

'auth' => 'App\Http\Middleware\Authenticate',

在你的app/Http/Kernel.php文件中:

將您需要的所有路由“經過身份驗證”放在分組中,但將“訪客”路由保留在其中:

Route::get('home', function(){
if (Auth::guest()) {
    return Redirect::to('/');
} else {
    return Redirect::to('admin');
}
});



Route::group( ['middleware' => 'auth' ], function(){
    Route::get('admin', function () {
        return view('pages.admin.start');
    });
    Route::just-another-route()...;
    Route::just-another-route()...;

});

文檔: http//laravel.com/docs/5.1/routing#route-groups

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM