laravel8+图形验证码

198 阅读1分钟

from 公共模板

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>@yield('title')</title>
    <link href="/admin/static/h-ui/css/H-ui.min.css" rel="stylesheet" type="text/css" />
    <link href="/admin/static/h-ui.admin/css/H-ui.login.css" rel="stylesheet" type="text/css" />
    <link href="/admin/static/h-ui.admin/css/style.css" rel="stylesheet" type="text/css" />
    <link href="/admin/lib/Hui-iconfont/1.0.8/iconfont.css" rel="stylesheet" type="text/css" />
    @yield('cs')
</head>
<body>
@yield('content')
<script type="text/javascript" src="/admin/lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="/admin/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="/admin/static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="/admin/static/h-ui.admin/js/H-ui.admin.js"></script>

<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/jquery.validate.js"></script>
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/validate-methods.js"></script>
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/messages_zh.js"></script>
@yield('js')
</body>
</html>

验证

@if($errors->any())
    <div class="Huialert Huialert-error"><i class="Hui-iconfont">&#xe6a6;</i>
    @foreach($errors->all() as $v)
        <li>{{$v}}</li>
        @endforeach
    </div>
@endif

登录页面+验证码显示

@extends('backstage.commcon.form')
@section('title','后台管理')
@section('content')
    <input type="hidden" id="TenantId" name="TenantId" value="" />
    <div class="loginWraper">
        <div id="loginform" class="loginBox">
            @include('backstage.commcon.validate')
            <form class="form form-horizontal" action="{{route('backstage.login')}}" method="post" id="form_sub">
                @csrf
                <div class="row cl">
                    <label class="form-label col-xs-3"><i class="Hui-iconfont">&#xe60d;</i></label>
                    <div class="formControls col-xs-8">
                        <input id="" name="username" type="text" placeholder="账户" class="input-text size-L">
                    </div>
                </div>
                <div class="row cl">
                    <label class="form-label col-xs-3"><i class="Hui-iconfont">&#xe60e;</i></label>
                    <div class="formControls col-xs-8">
                        <input id="" name="password" type="password" placeholder="密码" class="input-text size-L">
                    </div>
                </div>
                <div class="row cl">
                    <div class="formControls col-xs-8 col-xs-offset-3">
                        <input name="captcha" class="input-text size-L" type="text" placeholder="验证码" style="width:150px;">
                        <img src="{{ captcha_src('flat') }}" onclick="this.src='/captcha/flat?'+Math.random()"></div>
                </div>
                <div class="row cl">
                    <div class="formControls col-xs-8 col-xs-offset-3">
                        <label for="online">
                            <input type="checkbox" name="online" id="online" value="">
                            使我保持登录状态</label>
                    </div>
                </div>
                <div class="row cl">
                    <div class="formControls col-xs-8 col-xs-offset-3">
                        <input name="" type="submit" class="btn btn-success radius size-L" value="&nbsp;登&nbsp;&nbsp;&nbsp;&nbsp;录&nbsp;">
                        <input name="" type="reset" class="btn btn-default radius size-L" value="&nbsp;取&nbsp;&nbsp;&nbsp;&nbsp;消&nbsp;">
                    </div>
                </div>
            </form>
        </div>
    </div>
@endsection

验证登录以及验证码

 public function login(Request $request)
    {
        $this->validate($request,[
            'username'=>'required',
            'password'=>'required',
            'captcha'=>'required|captcha'
        ],[
            'captcha.required'=>'验证码必须写',
            'captcha.captcha'=>'验证码错误'
        ]);
        $post=$request->except(['captcha','_token']);
        if (auth()->attempt($post)){
            return 'ok';
        }else{
            return redirect(route('backstage.login'))->withErrors('账户或密码错误');
        }
    }