我正在为我的项目使用Laravel 5.1。我正在尝试保护路由并确保只有登录用户才能访问某些路由。我知道中间件,但我想知道是否有人发布了一个示例或链接解释有关中间件以及如何使用中间件保护页面。
谢谢
答案 0 :(得分:1)
您对使用中间件是正确的。包含Auth
中间件是您应该使用的,只要您还使用包含的Auth
控制器来验证用户。你会写这样的路线:
Route::get('/page', array(
'uses' => 'Controller@method',
'middleware'=>'auth'
));
(上面的示例使用GET
请求,但它可以使用其他请求类型,例如POST
。
这将使用中间件的默认行为,该行为检查用户是否已登录(已验证)。您还可以扩展或覆盖内置函数,以便在应用程序登录或未登录时将应用程序定向到发送用户的位置等.Laravel的官方文档是一个很好的起点:link < / p>
答案 1 :(得分:1)
基于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提供的文档的链接,以及this blog post,其中解释了哪些中间件非常好,以及如何根据需要创建自己的中间件。