后台退出登陆功能
Posted fangsheng90
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后台退出登陆功能相关的知识,希望对你有一定的参考价值。
1.添加退出登陆链接
<a href="{{url(‘admin/logout‘)}}">退出</a>
2.创建退出登陆路由
//后台退出登陆路由
Route::get(‘admin/logout‘,‘AdminLoginController@logout‘);
3.创建退出登陆控制器方法
//退出登陆
public function logout()
{
//清空session中的用户信息
session()->flush();
//重定向到登陆页面
return redirect(‘admin/login‘);
}
4.使用中间件保护后台页面
创建路由组,用于保护需要登陆才能访问的路由
//不需要登陆就能访问的路由分组,路由前缀:admin,命名空间前缀:Admin
Route::group([‘prefix‘ => ‘admin‘, ‘namespace‘ => ‘Admin‘], function () {
//后台登陆路由
Route::get(‘login‘, ‘LoginController@login‘);
//验证码路由
Route::get(‘code‘, ‘LoginController@code‘);
//后台登陆表单提交路由
Route::post(‘doLogin‘, ‘LoginController@doLogin‘);
//加密算法
Route::get(‘jiami‘, ‘LoginController@jiami‘);
});
//需要登陆才能访问的路由分组,路由前缀:admin,命名空间前缀:Admin,中间件名称:isLogin
Route::group([‘prefix‘=>‘admin‘,‘namespace‘=>‘Admin‘,‘middleware‘=>‘isLogin‘], function () {
//后台首页路由
Route::get(‘admin/index‘, ‘AdminLoginController@index‘);
//后台欢迎页路由
Route::get(‘admin/welcome‘, ‘AdminLoginController@welcome‘);
//后台退出登陆路由
Route::get(‘admin/logout‘, ‘AdminLoginController@logout‘);
});
创建中间件类IsLogin
f:xamppphpphp.exe artisan make:middleware IsLogin
编写中间件
位置:app/Http/Middleware/IsLogin
public function handle($request, Closure $next)
{
//如果session中有用户信息,则继续进行下一步请求
if (session()->get(‘user‘)) {
return $next($request);
//否则session中没有用户信息,则重定向到登陆页面,给错误提示信息
}else{
return redirect(‘admin/login‘)->with(‘errors‘,‘请先登陆用户‘);
}
}
注册中间件
位置:app/Http/Kernel.php
protected $routeMiddleware = [
‘auth‘ => IlluminateAuthMiddlewareAuthenticate::class,
‘auth.basic‘ => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,
‘bindings‘ => IlluminateRoutingMiddlewareSubstituteBindings::class,
‘can‘ => IlluminateAuthMiddlewareAuthorize::class,
‘guest‘ => AppHttpMiddlewareRedirectIfAuthenticated::class,
‘throttle‘ => IlluminateRoutingMiddlewareThrottleRequests::class,
‘isLogin‘ => AppHttpMiddlewareIsLogin::class,
];
使用中间件
Route::group([‘prefix‘ => ‘admin‘, ‘namespace‘ => ‘Admin‘, ‘middleware‘ => ‘isLogin‘], function () {});
以上是关于后台退出登陆功能的主要内容,如果未能解决你的问题,请参考以下文章