laravel8 auth登录 中间件中判断是否登录 及退出

登录

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">&#xe6a6</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 登录页面;
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值