1、管理员登录中间件和注销
生活随笔
收集整理的這篇文章主要介紹了
1、管理员登录中间件和注销
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、根據session去判斷用戶是否登錄,登錄后才可以進index首頁,否則返回login頁面,借助中間件
(1)修改路由
Route::group(['middleware' => ['web','admin.login'],'prefix'=>'admin','namespace'=>'Admin'], function () { //注冊一個中間件admin.login //prefix 為路由前綴,namespace為命名空間,為下面的路由省去重復值 //路由要放中間件里面,否則會生成不了session //登錄頁面不能放到中間件里面,否則連登錄頁面都不能進入 Route::get('index','IndexController@index'); Route::get('info','IndexController@info'); });(2)app\Kernel.php
添加admin.login一行
protected $routeMiddleware = ['auth' => \App\Http\Middleware\Authenticate::class,'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,'admin.login' => \App\Http\Middleware\Adminlogin::class,];(3) 控制臺進入項目根目錄,創建中間件
php artisan make:middleware Adminlogin
修改app\Http\Middleware\Adminlogin.php
<?phpnamespace App\Http\Middleware;use Closure;class Adminlogin {/*** Handle an incoming request.** @param \Illuminate\Http\Request $request* @param \Closure $next* @return mixed*///如果session('user')為空,則返回登錄頁面public function handle($request, Closure $next){if(!session('user')){return redirect('admin/login');}return $next($request);} } View Code驗證:
進入LoginController.php,login方法中,清除session
訪問admin/login頁面的時候,session信息被清除
session(['user'=>null]); return view('admin.login');此時:當用戶登錄后才可以進入index頁面,重新開啟另一個login頁面,session被清,再返回剛剛的index頁面,刷新,跳轉到登錄頁面(測試完,注釋掉session一句)
2、首頁退出功能
(1) 添加路由
Route::get('quit','LoginController@quit');(2)LoginController.php 添加quit方法
public function quit() {session(['user'=>null]);return redirect('admin/login'); }(3)修改index.blade.php,完善退出按鈕
<li><a href="{{url('admin/quit')}}">退出</a></li>驗證:
用戶登錄之后,進入index頁面,點擊退出之后,跳轉到login頁面,此時session被清除,單獨訪問index則會跳轉到login頁面
轉載于:https://www.cnblogs.com/guduoer/p/6343542.html
總結
以上是生活随笔為你收集整理的1、管理员登录中间件和注销的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DAS-DVS分布式光纤振动传感-发展现
- 下一篇: 每日一九度之 题目1030:毕业bg