簡體   English   中英

Laravel 5.2 - 中間件身份驗證

[英]Laravel 5.2 - middleware auth

我剛剛安裝了 Laravel 5.2,並創建了身份驗證注冊、登錄和重置密碼,但現在我想創建我的項目的索引,所有用戶(也未登錄)都可以訪問該索引。 我試着創造

Route::get('/',HomeController@home');

但此視圖僅對登錄的用戶啟用。

我的路線

Route::auth();
Route::get('/home', 'HomeController@index');
// POST - FORM CREA 
Route::get('/crea-regalo', 'PostController@form');
Route::post('/crea-regalo', 'PostController@creaPost');
// LISTA ANNUNCI PRINCIPALE
Route::get('/', 'HomeController@home');

我的家庭控制器

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $posts = Post::orderBy('id','DESC');
        return view('home', compact('posts'));
    }

    public function home()
    {
        $posts = Post::all();
        return view('index', compact('posts'));
    }
}

如何創建所有用戶都可以訪問的視圖路徑?

感謝您的幫助!

嗨,編寫單獨的控制器來訪問所有人的頁面,因為您已經在構造函數中編寫了身份驗證中間件

public function __construct()
{
   $this->middleware('auth');
}

類似的喜歡

class GuestController extends Controller
{

    public function __construct()
    {

    }


    public function home()
    {
        $posts = Post::all();
        return view('index', compact('posts'));
    }
}

途中

Route::get('/home', 'GuestController@home');

否則你可以這樣做

$this->middleware('auth', ['except' => ['home']]);

這將能夠訪問所有人的主頁。在你的構造函數中添加這個

public function __construct()
{
   $this->middleware('auth', ['except' => ['home']]);
}

將您希望僅允許經過身份驗證的用戶的路由放入中間件身份驗證中,如下所示:

Route::group(['middleware' => ['auth']], function () {
  //your routes    
})

對於所有用戶都可以訪問的路由,將其放在上述組之外。

暫無
暫無

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

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