繁体   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