Php 保护Laravel 5.1中的路线

Php 保护Laravel 5.1中的路线,php,routes,laravel-5.1,Php,Routes,Laravel 5.1,我正在使用Laravel5.1进行我的项目。我正在尝试保护路由,并确保只有登录的用户才能访问某些路由。我了解中间件,但我想知道是否有人发布了一个示例或链接来解释中间件以及如何使用中间件保护页面 谢谢你使用中间件是正确的。只要还使用包含的Auth控制器对用户进行身份验证,就应该使用包含的Auth中间件。你可以这样写你的路线: Route::get('/page', array( 'uses' => 'Controller@method', 'middleware'=>'

我正在使用Laravel5.1进行我的项目。我正在尝试保护路由,并确保只有登录的用户才能访问某些路由。我了解中间件,但我想知道是否有人发布了一个示例或链接来解释中间件以及如何使用中间件保护页面


谢谢你使用中间件是正确的。只要还使用包含的
Auth
控制器对用户进行身份验证,就应该使用包含的
Auth
中间件。你可以这样写你的路线:

Route::get('/page', array(
    'uses' => 'Controller@method',
    'middleware'=>'auth'
));
(上面的示例使用的是
GET
请求,但它可以使用其他请求类型,例如
POST


这将使用中间件的默认行为来检查用户是否已登录(已验证)。您还可以扩展或覆盖内置函数,以便在用户登录或未登录等情况下引导应用程序将用户发送到何处。Laravel的官方文档是一个很好的起点:

以Joe Rose给出的答案为基础,您还可以在控制器中指定中间件,而不是在
routes.php
文件中指定

你可以像这样安排你的路线

Route::get('/example', 'ExampleController@index');
Route::post('/example/post', 'ExampleController@post');
Route::resource('blog', 'BlogController');
然后在控制器内部参照它,如下所示:

class ExampleController extends Controller
{
    public function __construct()
        {
            $this->middleware('auth');
        }
    //....

如果您想了解更多信息,请查看Joe提供的文档链接,其中还解释了什么中间件真正优秀,以及如果需要,如何创建自己的中间件。

Hi Sajan!欢迎使用堆栈溢出(SO)!要提出有帮助的问题,重要的是这些问题要具体明确,并且很感谢(也期望)能介绍您迄今为止所做的尝试。另外,请花些时间来学习,这将帮助你掌握一切。您还将获得一枚徽章;)谢谢你的回答。您是否有一个如何在认证中间件中实现handle函数的示例。这一部分我有点困惑。@SajanSilwal默认情况下,Laravel在中间件文件夹(app/Http/Middleware)中附带了
Authenticate.php
。handle方法使用这一行检查用户是否是来宾(即未登录),如果($this->auth->guest()),则检查请求是否是ajax请求,如果是,则使用这一行返回401条未经授权的消息
如果($request->ajax())
,否则,它会使用
else{return redirect()->guest('auth/login');}
将它们返回到登录页面,否则,如果您登录,您将无法通过guest检查,您的请求将正常进行。