世界上最伟大的投资就是投资自己的教育
Ruby 程序员学习 laravel 框架笔记 (16)-用中间件来限制用户必须登录
随风发布于2833 次阅读
有时候我们经常会控制一些页面需要登录才能访问,这个功能在 laravel 如何做到呢?
就是用中间件,只需要四个步骤。
现在我们来演示一下。
1. 生成 middleware
先生成 middleware 文件,使用下面的命令:
$ php artisan make:middleware AuthenticatedMiddleware
这样会生成一个文件:'app/Http/Middleware/AuthenticatedMiddleware.php'。
2. 修改 middleware
把这个文件打开,修改如下:
// 'app/Http/Middleware/AuthenticatedMiddleware.php'
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
class AuthenticatedMiddleware
{
public function handle($request, Closure $next)
{
if(Auth::check())
return $next($request);
return redirect('/login');
}
}
上面的 handle
方法的大致意思是用户只要登录过 (Auth::check()) 就可以继续进行下面的访问 ($next),否则的话,就跳到 /login
页面,也就是登录页面。
3. 引入中间件
写了中间件,我们要让系统引入它。
打开 app/Http/Kernel.php
文件,找到 $routeMiddleware
部分,添加下面一行:
'authenticated' => \App\Http\Middleware\AuthenticatedMiddleware::class
最终效果如下所示:
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
...
'authenticated' => \App\Http\Middleware\AuthenticatedMiddleware::class
];
这里我们定义了中间件的名称为 authenticated
。
4. 使用中间件
最后,我们来使用这个新创建的中间件。
打开路由配置文件 routes/web.php
。
把 Route::get('users', 'UsersController@index');
修改成下面这样:
Route::get('users', 'UsersController@index')->middleware('authenticated');
最终的效果是这样:一旦用户访问 /users
就必须要登录,否则就跳到登录页面。
效果图如下:
完结。
本站文章均为原创内容,如需转载请注明出处,谢谢。
0 条回复
暂无回复~~
相关小书
喜欢
统计信息
学员: 30007
视频数量: 1996
文章数量: 526
© 汕尾市求知科技有限公司 | Rails365 Gitlab | 知乎 | b 站 | csdn
粤公网安备 44152102000088号 | 粤ICP备19038915号
Top