登录
1.在后台接收传过来的值 并用验证器验证
public function doLogin(Request $request)
{
//接收参数 验证参数
$post = $this->validate($request,[
'username'=>'required',
'password'=>'required',
],[
'username.required'=>'用户名不能为空',
'password.required'=>'密码不能为空',
]);
$result = auth()->attempt($post);
if ($result){
//登录成功
return redirect(route('banner.index'));
}else{
return redirect(route('login'))->withErrors(['errors'=>'登录失败']);
}
}
2.这里需要注意在模型里面来引入
和在config 文件夹下的auth.php 里面将auth配置好
这里在前台是同步请求,所以可以将错误信息直接返回到前端
@if($errors->any())
<div class="Huialert Huialert-error"><i class="Hui-iconfont"></i>
@foreach($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</div>
@endif
注意:auth 登录字段名称必须是username 和 password 并且password 的加密方式为 bcryp方式
在中间件中判断是否登录
1.先定义一个中间件
php artisan make:middleware CheckLogin
2.在app/http/Middleware/kernel.php 文件中的 $routeMiddleware 加入一个
'checklogin' => \App\Http\Middleware\CheckLogin::class
这里的checklogin 是自己定义
3.在路由加入 这里的checklogin 是上面定义的
Route::group(['middleware' => ['checklogin']], function () {
//
});
4.将后面需要检测登录后才能访问的路由加入到这个分组中
5.中间价中判断是否登录
//判断用户是否登录
if (!auth()->check()){
//没有登录邀请用户登录
return 登录页面
}
return $next($request);
退出功能
public function logout()
{
//用户退出 清空session
auth()->logout();
//跳转 带提示
return 登录页面;
}